Algorithm Project Euler N2-斐波那契算法工作不正常

Algorithm Project Euler N2-斐波那契算法工作不正常,algorithm,fibonacci,Algorithm,Fibonacci,斐波那契方程中的每个新项 序列是通过添加 前两届。从1开始 第二,前10个条款为: 1、2、3、5、8、13、21、34、55、89 求所有偶数值的和 序列中不包含的术语 超过四百万 Int64[]Numeros=newint64[4000005]; 数值[0]=1; 数字[1]=2; Int64指数=2; Int64累计值=2; 对于(int i=0;i4000000) { 打破 } 其他的 { 累计值+=数字[指数]; } } Indice++; } 控制台写入线(Acumulador);

斐波那契方程中的每个新项 序列是通过添加 前两届。从1开始 第二,前10个条款为:

1、2、3、5、8、13、21、34、55、89

求所有偶数值的和 序列中不包含的术语 超过四百万

Int64[]Numeros=newint64[4000005];
数值[0]=1;
数字[1]=2;
Int64指数=2;
Int64累计值=2;
对于(int i=0;i<4000000;i++)
{
数字[指数]=数字[指数-2]+数字[指数-1];
如果(数字[标记]%2==0)
{
如果((数字[指数]+累计值)>4000000)
{
打破
}
其他的
{
累计值+=数字[指数];
}
}
Indice++;
}
控制台写入线(Acumulador);
Console.ReadLine();
我的程序运行不正常,我想是因为在Euler项目上,他们说我的答案不正确。也许我忽略了什么。有什么帮助吗?

这行

if ((Numeros[Indice] + Acumulador) > 4000000)
正在检查总和是否大于4MM。您需要检查术语(数字[Indice])是否大于4MM。所以把它改成这个

if (Numeros[Indice] > 4000000)

这可能是一个很好的起点。

而且,在for循环中设置您的测试条件也是无用的
i
永远不会达到4000000的值。 仅仅是

while(1){
//code
}

也可以,不需要
i
,因为你从不使用它作为开始,你只需要跟踪最后两个数字。在检查数字是否为偶数之前,先检查上限。
while(1){
//code
}