【发布时间】:2010-11-26 00:38:11
【问题描述】:
斐波那契的每个新术语 序列是通过添加 前两期。从 1 开始 和 2,前 10 个术语将是:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
求所有偶值的总和 序列中的项不 超过四百万。
Int64[] Numeros = new Int64[4000005];
Numeros[0] = 1;
Numeros[1] = 2;
Int64 Indice = 2;
Int64 Acumulador = 2;
for (int i = 0; i < 4000000; i++)
{
Numeros[Indice] = Numeros[Indice - 2] + Numeros[Indice - 1];
if (Numeros[Indice] % 2 == 0)
{
if ((Numeros[Indice] + Acumulador) > 4000000)
{
break;
}
else
{
Acumulador += Numeros[Indice];
}
}
Indice++;
}
Console.WriteLine(Acumulador);
Console.ReadLine();
我的程序没有按我猜的那样运行,因为在 Project Euler 上,他们说我的答案不正确。也许我忽略了一些东西。有什么帮助吗?
【问题讨论】:
-
首先,您只需要跟踪最后两个数字。
-
在检查数字是否为偶数之前先检查上限。