在Fibonacci序列中找出偶数项的总和(Project Euler)

fts*_*fts 1 c++ fibonacci

我正在尝试来自Project Euler.net的问题.我坚持的问题是这样的.

通过考虑Fibonacci序列中的值不超过四百万的项,找到偶数项的总和.

我提出了以下代码.

#include<iostream>
#include<cstdlib>
using namespace std;

int main() {
int a=1,b=1,c,sum=0;
    while(c<4000000)
    {
        c=a+b;
        if((c%2)==0)
        sum+=c;

        a=b;
        b=c;
    }
     cout<<sum;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

返回的总和是zero.我已经查看了StackOverflow上的其他解决方案,但我无法理解我的解决方案中的问题.任何帮助赞赏.

Jer*_*fin 5

c在进入循环之前尚未初始化.如果它包含大于你的限制的东西,循环将不会执行,并将在循环终止后sum保留0.