Project Euler #002
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... Find the sum of all the even-valued terms in the sequence which do not exceed four million.
let rec fib n1 n2 iterations =
if iterations = 1 then
n2
else
fib n2 (n1 + n2) (iterations-1)
let rec fiblist iterations =
let n = fib 1 1 iterations
if n > 4000000 then
[]
else
n :: fiblist (iterations + 1)
let even x = (x % 2 = 0)
List.fold (fun acc x -> if (even x) then acc + x else acc + 0) 0 (fiblist 1)
comments powered by Disqus