我正在调查euler项目问题2,以提高我的编程和解决问题的能力。我遇到了问题2但是我不确定我的代码中出了什么问题。这是问题所在:
Fibonacci序列中的每个新术语都是通过添加前两个术语生成的。从1和2开始,前10个术语将是:
1,2,3,5,8,13,21,34,55,89,......
通过考虑Fibonacci序列中的值不超过四百万的项,找到偶数项的总和。
这是我尝试解决方案。
#define MAX 4000000
int main()
{
int num1=1, num2=1, temp, sum;
while(num1<MAX || num2<MAX)
{
temp=num1+num2;
num1=num2;
num2=temp;
if(temp%2==0)
sum += temp;
}
printf("Sum= %d", sum);
}
我得到的输出(错误)是
总和= 9212508
答案 0 :(得分:2)
sum = 0
。num1
接近极限,sum
必然会更大。num1
&lt; num2
,因此检查num1
的大小是没有意义的。num1
,num1
和sum
。