从1,2,3开始的斐波那契数列的偶数之和。。。用javascript?

从1,2,3开始的斐波那契数列的偶数之和。。。用javascript?,javascript,math,fibonacci,Javascript,Math,Fibonacci,下面的代码是用javascript编写的,在一定范围内运行良好。我想检查一下200万的范围,结果显示为无穷大?如何在javascript中处理大数之和 有这么大的数字,你可能达到了最大数字大小。说javascript能处理的最大数量是9007199254740992。我想上面的任何东西都可能导致无穷大。 如果你真的需要用这么大的数字来工作,你应该考虑使用JavaScript的BigPixt实现,比如,由于JavaScript数字中可安全表示的最大整数是2^53-1=900719925474099

下面的代码是用javascript编写的,在一定范围内运行良好。我想检查一下200万的范围,结果显示为无穷大?如何在javascript中处理大数之和


有这么大的数字,你可能达到了最大数字大小。说javascript能处理的最大数量是9007199254740992。我想上面的任何东西都可能导致无穷大。

如果你真的需要用这么大的数字来工作,你应该考虑使用JavaScript的BigPixt实现,比如,由于JavaScript数字中可安全表示的最大整数是2^53-1=9007199254740992。

显然,您不能将这么大的数字存储在JavaScript数字中,您需要一个大整数实现斐波那契序列是指数的。你确定要前200万个数字的和是50万位数的数字,还是200万以下的所有数字的和?如果你真的需要大数字,可以尝试类似“Euler问题2”这样的方法,要求偶数斐波那契数的和小于400万,它还使用了相同的异常起始值1和2,而不是说fibonacci0=0,fibonacci1=1,fibonacci2=1。看见我怀疑系统发育是正确的,这正是我们想要的,这是我们所能掌握的最大的整数。除此之外,它切换到64位双精度表示,最多可以存储15位精度的1e308。我实际上没有切换,根据ECMAScript规范,它始终是IEEE754双精度。这只是一个转折点,整数不再安全地表示。
function fibanocci(n){
    var first = 1;
    var second = 2;
    var next = 0;
    var sum = 2;
    for(var i=0;i<n-2;i++){
        next = first+second;
        first = second;
        second = next;
        if(next%2==0){
            sum = sum+next;
        }
    }
    console.log(sum);
}