Problem 2 「偶数のフィボナッチ数」 †





フィボナッチ数列の項は前の2つの項の和である. 最初の2項を 1, 2 とすれば, 最初の10項は以下の通りである.
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
数列の項の値が400万以下の, 偶数値の項の総和を求めよ.



解法
漸化式を使った解法。
再帰で自然に記述できます。

賢い解法はこちらを参照のこと。
http://bach.istc.kobe-u.ac.jp/lect/ProLang/org/euler-002.html


isAdd(N,0):-N mod 2=:=1,!.
isAdd(N,N):-!.
saiki(F1,_,Sum,Sum):-
	400*10000<F1,
	!.
saiki(F1,F2,Sum,Result):-
	F3 is F1+F2,
	isAdd(F1,Add),
	Sum1 is Sum+Add,
	saiki(F2,F3,Sum1,Result).
main2:-saiki(0,1,0,Ans),write(Ans).

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2014年02月12日 08:21