为什么我的Euler Project代码存在缺陷?

时间:2014-04-01 15:25:01

标签: c

我正在调查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

1 个答案:

答案 0 :(得分:2)

  1. Yo没有初始化sum = 0
  2. 如果num1接近极限,sum必然会更大。
  3. num1&lt; num2,因此检查num1的大小是没有意义的。
  4. 出于调试目的,请在每次循环迭代期间打印num1num1sum