問題:
フィボナッチ数列の新しい各項は、前の2つの項を追加することによって生成されます。1と2から始めると、最初の10項は次のようになります。
1、2、3、5、8、13、21、34、55、89、..。
値が400万を超えないフィボナッチ数列の項を検討することにより、偶数値の項の合計を求めます。
これを行う別の方法を調べましたが、なぜ私の方法が機能しないのか混乱しています。コードとその下に書かれたアルゴリズムプロセスを含めました。選択した値kの反復のスパン(4000000または10)に関係なく、常に同じ答え(4200784)を受け取ります。助けてくれてありがとう。
#include <stdio.h>
int main()
{
long int sum;
sum = 0;
long int i;
i = 1;
long int j;
j = 2;
long int k;
while(k<4000000)
{
k = i + j;
if(k%2==0)
sum +=k;
i = j;
j = k;
}
printf("%d",sum);
return 0;
}
//Step 0//For the initial conditions [i][j]=[1][2]
//Step 1//Find the value of i + j.
//Step 2//Find out if the solution is even by dividing by modulus 2.
//Step 3//If even, add the solution to the sum.
//Step 4//Replace the value of i with j, and replace the value of j with the new sum.
//Repeat Steps 1-4 while i + j < 4,000,000
//1, 2, 3, 5, 8, 13, 21, 34