js实现斐波那契数列

1:递归

function fb1(n){
    if(n <= 2){
        return 1;   
    }else{
        return fb1(n-1) + fb1(n-2);
    }
}

  

2:for 循环(迭代)

function getFib(num) {
      var num1 = 1;
      var num2 = 1;
      var sum = 0;
      for (var i = 3; i <= num; i++) {
        sum = num1 + num2;
        num1 = num2;
        num2 = sum;
      }
      return sum;
    }

3:闭包

const fb4 = function(){
    var mem = [0,1];
    var f = function(n){
        var res = mem[n];
        if(typeof res !== 'number'){
            mem[n] = f(n-1) + f(n-2);
            res = mem[n];
        }
        return res;
    }
    return f;
}();

  

猜你喜欢

转载自www.cnblogs.com/wanguofeng/p/10499888.html