public static int fibL(int n) { int i=1, f_1=0, f_2=1, f=1; while(i<=n) { f = f_1+f_2; f_2= f_1; f_1 = f; ++i; } return f; }
上のプログラムはフィボナッチ数をループで計算するfibLを定義しています。
理解できない点が2つあります。
1つ目は『f=1;』です。なぜ初期値を1にする必要があるのですか?このfというのは第3項以降を表しているんですよね?
2つ目は 『f_2= f_1;f_1 = f;』です。これって何をしてるんでしょうか。フィボナッチ数列ってそもそも前の2項をたしていくんですよね?足しているようにみえません。
フィボナッチ数列は『0,1,1,2,3,5,8...』ですよね。それを表しているプログラムだというのは分かるんですが、上手く読めません。教えて欲しいです。よろしくお願いします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/26 00:29
2016/07/26 01:57 編集