2013-09-06
Project Euler - Problem 2
[ PR ]
Problem 2 「偶数のフィボナッチ数」
フィボナッチ数列の項は前の2つの項の和である. 最初の2項を 1, 2 とすれば, 最初の10項は以下の通りである.
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
数列の項の値が400万より小さい, 偶数値の項の総和を求めよ.
ちょっと最初に戸惑ったのは、偶数値という意味を「偶数項」と読み違えていたのですが、タイトルを見た後で、あぁ、「値が偶数である項」という意味なのかと納得しました。
(defun prob2 (&optional (x1 1) (x2 2) (res 0))
(if (>= x1 4000000) res
(prob2 x2 (+ x1 x2) (if (evenp x1) (+ res x1) res))))
(print (prob2)) ; 4613732
ちなみにsbclでの実行速度は、スクリプトでは25ms、ネイティブコンパイルでは11msでした。
数学ガール フェルマーの最終定理 (数学ガールシリーズ 2)
posted with amazlet at 14.01.17
結城 浩
ソフトバンククリエイティブ
売り上げランキング: 43,795
ソフトバンククリエイティブ
売り上げランキング: 43,795