我目前正在尝试通过Project Euler来增加对C ++的理解,但是我对如何在Fibonacci序列中仅得到偶数数字的问题2感到困惑。我99%肯定你必须使用我在网上查看的东西中的%运算符,但我理解的是它需要剩下的东西(例如11/3 = 9 w) /余数为2),所以我不知道如何将它合并到代码中。
问题:Fibonacci序列中的每个新术语都是通过添加前两个术语生成的。从1和2开始,前10个术语将是:
1,2,3,5,8,13,21,34,55,89,......
通过考虑Fibonacci序列中的值不超过四百万的项,找到偶数项的总和。
using namespace std;
int main()
{
int first = 1;
int second = 2;
int next;
cout << first << endl;
cout << second << endl;
if (next < 4000000)
{
for (int i = 0; i < 500000; i++)
{
next = first + second;
first = second;
second = next;
}
}
cout << next << endl;
return 0;
}
答案 0 :(得分:1)
您需要使用模运算符检查数字的均匀性。
for (int i = 0; i < 500000; i++) {
next = first + second;
if(next%2 == 0) {
cout << next << "\n";
}
first = second;
second = next;
}
有关模运算符的更多详细信息,请read给定链接。