问题:
斐波那契数列中的每个新项都是通过添加前两项来生成的。从 1 和 2 开始,前 10 个术语将是:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
通过考虑斐波那契数列中值不超过四百万的项,求偶数项之和。
我已经寻找了另一种方法来做到这一点,但我对为什么我的方法不起作用感到困惑。我已经在它下面包含了代码以及我编写的算法过程。无论我选择值 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