斐波那契数列(七)

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。

n<=39

 

var readline=require("readline");
var rl=readline.createInterface({
    input:process.stdin,
    output:process.stdout
})

var n=-1,cur_line=0;

rl.on('line',function(line){
    console.log(Fibonacci(parseInt(line)));
})

/**
 * 递归的时间复杂度太高
 */
function Fibonacci(n){

    if(n==0){
        return 0;
    }

    if(n==1){
        return 1;
    }

    return Fibonacci(n-1)+Fibonacci(n-2);
}


/**
 * 改用迭代法
 */

function Fibonacci(n){
    if(n<1){
        return n;
    }
    else{
        var f0=0,f1=1;
        var f2;
        for(var i=2;i<=n;i++){
            f2=f0+f1;
            // f1=f2;
            // f0=f1; 这里的顺序千万不能错了

            /**
             * 注意!!!应该是
             */
            f0=f1;
            f1=f2;

        }

        return f2;
    }
}


/**if(n==1||n==0){return n};
    var arr=[0,1];
    for(var i=2;i<=n;i++){
        arr.push(arr[arr.length-1]+arr[arr.length-2])
    }
    return arr[n];
    **/

 

posted @ 2018-09-06 22:15  mino1996  阅读(122)  评论(0编辑  收藏  举报