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

时间:2013-12-30 07:51:29

标签: 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;
}

返回的金额始终为zero。我已经查看了StackOverflow上的其他解决方案,但我无法理解我的解决方案中的问题。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:5)

在进入循环之前,您尚未初始化c。如果它包含大于您的限制的内容,则循环将不会执行,并且在循环终止后sum将保持0

答案 1 :(得分:0)

公共类示例{

public static void main(final String args[]) {


    // fibno me even terms
    int a = 0, b = 1;
    int temp = 0;

    // print fibo below 4 million
    for (int i = 0; i <= 4000000; i++) {

        int c = a + b;

        // System.out.println(c);

        if (c % 2 == 0)

        {

            temp = temp + c;


            // System.out.println("Even" + c);
        }
        a = b;
        b = c;

    }

    System.out.println("temp value is " + temp);

}

}