問題 2:Fibonacci列偶数値項の和
Fibonacci数列の項はそれに先立つ2つの項を足すことで生成する.1,2 から始めて最初の 10 項は
1,2,3,5,8,13,21,34,55,89,...
である.4,000,000を超えない偶数の値をもつ項の和を求めよ.
HaskellだとエレガントにFibonacci数列が定義できてしまう.
main :: IO main = print $ p0002 (4*10^6) p0002 :: Integer -> Integer p0002 u = sum $ filter even $ takeWhile (u>=) fibs fibs :: [Integer] fibs@(_:fibs') = 0:1:zipWith (+) fibs fibs'