【题目】
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
【翻译】
斐波那契数列中的每一项被定义为前两项之和。从1和2开始,斐波那契数列的前十项为:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
考虑斐波那契数列中数值不超过4百万的项,找出这些项中值为偶数的项之和。
【思路】用x和y分别保存斐波那契数列的前两项,之后计算新产生的数据项,该项为偶数则累加到sum中,之后输出sum即可。
【代码】
void test2()
{
int x = 1;
int y = 2;
long long int sum = y;
int temp;
while (y < 4000000)
{
temp = x;
x = y;
y +=temp;
if (!(y&1))//如果为偶数
sum += y;
}
cout << sum << endl;
}
【答案】运行程序后,得到答案为4613732。