【问题标题】:Why is my Euler Project code flawed?为什么我的欧拉项目代码有缺陷?
【发布时间】:2015-01-22 18:33:18
【问题描述】:

我正在尝试欧拉项目问题 2,以提高我的编程和解决问题的能力。但是,我被困在问题 2 中,我不确定我的代码出了什么问题。问题来了:

斐波那契数列中的每个新项都是通过添加前两项来生成的。从 1 和 2 开始,前 10 个术语将是:

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...

通过考虑斐波那契数列中值不超过四百万的项,求偶数项之和。

这是我对解决方案的尝试。

#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

【问题讨论】:

标签: c


【解决方案1】:
  1. 你没有初始化sum = 0
  2. 如果num1 接近其极限,则sum 必然更大。
  3. num1 num2,所以检查 num1 的大小有点毫无意义。
  4. 出于调试目的,在每次循环迭代期间打印num1num1sum

【讨论】:

  • #1 似乎是问题所在。当我运行他的代码时, sum 被初始化为 32,767
猜你喜欢
  • 2023-03-29
  • 2018-05-29
  • 1970-01-01
  • 1970-01-01
  • 2015-10-19
  • 1970-01-01
  • 2017-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多