项目Euler Q#2 in“;javascript";
小于4 mil的偶数斐波那契数之和:我试图使用JavaScript实现它,但我得到的答案是无穷大 但如果我使用较小的数字,比如10,我会得到console.log()输出结果,可以用JavaScript实现吗项目Euler Q#2 in“;javascript";,javascript,fibonacci,Javascript,Fibonacci,小于4 mil的偶数斐波那契数之和:我试图使用JavaScript实现它,但我得到的答案是无穷大 但如果我使用较小的数字,比如10,我会得到console.log()输出结果,可以用JavaScript实现吗 var fib = [1, 2]; for(var i =fib.length; i<4000000; i++) { fib[i] = fib[i-2] + fib[i-1]; } //console.log(fib); var arr_sum = 0; for(v
var fib = [1, 2];
for(var i =fib.length; i<4000000; i++)
{
fib[i] = fib[i-2] + fib[i-1];
}
//console.log(fib);
var arr_sum = 0;
for(var i = 0; i < fib.length; i++){
if(fib[i] % 2 === 0){
arr_sum += fib[i] ;
}
}
console.log(arr_sum);
var fib=[1,2];
对于(var i=fib.length;i在开始编码之前有两件事:
- 您需要对值低于400万的偶数斐波那契数求和(@Alnitak)
- 有一个“偶数斐波那契级数”,可以用不同的方式计算
好了,我们开始:
设fib=[0,2];
对于(设i=2;fib[i-1]<4000000;i++){
fib[i]=4*fib[i-1]+fib[i-2];
}
fib.pop()
让sum=fib.reduce((a,c)=>a+c,0);
console.log(sum);
这就是问题所在:
斐波那契序列中的每个新项都是通过将前两项相加生成的。从1和2开始,前10项将是:
1,2,3,5,8,13,21,34,55,89,
通过考虑Fibonacci序列中值不超过400万的项,找出偶数值项之和。
正确答案是4613732
在下面的脚本中,答案来自变量“sum”。我给它赋了一个初始值2,因为这是序列中的第一个偶数。我使用了另外3个变量遍历这个序列。循环运行正常的斐波那契序列,if语句过滤偶数并将其添加到sum中
我认为这是最简单、最直观的代码实现
var总和=2;
变量x=1,y=2,fib;
而(x<4000000){
fib=x+y;
x=y;
y=fib;
如果(fib%2==0)和+=fib;
}
console.log(sum);
您需要发布实际涉及的代码。您正在尝试对前400万个fib(n)求和-您只能对值低于4e6的fib(n)求和。好的,感谢您提供的信息,您得到了无穷大,因为在某一点上,该数字变得非常大,超出了js可以存储的范围。(正如我所注意到的1476个数字,准确地说是1=3069892237633987e+308)。这之后的每个数字都是无穷大的,因此它们的总和也是无穷大的)您好,谢谢您的回答,我运行了代码并得到了答案,但是从您的代码得到的值与我的不匹配,请再次交叉验证代码,我实际得到了答案4613732@G.Santosh我刚刚核实过,谢谢你的评论。