1. 程式人生 > >斐波那契求第n項

斐波那契求第n項

摘自  https://blog.csdn.net/lpjishu/article/details/51323116

斐波那契求第n項是常見的演算法題

方法1  遞迴法

 

    //斐波那契 0,1,1,2,3,5  求n
    //呼叫過程像一個二叉樹
    //f8 會調 f7,f6  f7會呼叫 f6,f5。 這樣f6就重複了
    //45之後就很慢了
    function getN(n){
        if(n <= 0){
            return 0;
        }
        if(n === 1){
            return 1;
        }
        return getN(n - 1) + getN(n - 2);
    }
    console.log(getN(47));

 

 方法2 迴圈

    //迴圈 秒出
    function getN(n){
        if(n <= 0){
            return 0;
        }
        if(n === 1){
            return 1;
        }
        var prev = 0;
        var next = 1;
        var num = 0;
        for (var i = 2; i <= n; i++) {
            num = next + prev
            prev = next
            next = num
        }
        return num;
    }
    console.log(getN(10000));