斐波纳契计算器步骤

时间:2014-03-02 17:33:37

标签: javascript

一切正常但我对此Fibonacci计算器有疑问(请参阅代码内注释)。我可以跳过console.debug步骤吗?为什么需要?

var getFibSum = document.getElementById("sumFib");


getFibSum.onclick = function(){
               document.getElementById("sumFibResult").innerHTML = fiftyEvenFibonacciSum();
 }


 function fiftyEvenFibonacciSum(){
 /// WRITE YOUR CODE HERE
 var first,second,add;
    for(var i=0;i<50;i++){
        if(i === 0){
            first = 1;
            second = 2;
        }
        /** Why do I have  to do the following to make it work?:*/
        if(first+second > Number.MAX_VALUE){
            console.debug(i, first, second);
            return;
        }
        add = first + second;
        first = second;
        second = add;
    }

    return(add);
}

或者另一种方式是编写Fibonacci函数来计算前50个数字之和的最有效方法:

var getFibSum = document.getElementById("sumFib");


getFibSum.onclick = function(){
               document.getElementById("sumFibResult").innerHTML = fiftyEvenFibonacciSum();
 }


 function fiftyEvenFibonacciSum(){
 /// WRITE YOUR CODE HERE
 var first,second,add;
    for(var i=0;i<50;i++){
        if(i === 0){
            first = 1;
            second = 2;

        add = first + second;
        first = second;
        second = add;
    }

    return(add);
}

2 个答案:

答案 0 :(得分:1)

Number.MAX_VALUE是您的系统可以解决的最大值,并且该部分代码实际上会停止脚本并输出最后一个数字,以防您超过该最大值。

由于你只进行了50次迭代,所以你甚至不太可能接近这个数字,所以你可以自由删除整个if子句,如果它困扰你的话。

答案 1 :(得分:0)

console.debug只打印一些调试信息,可以安全删除。