两种JS方法实现斐波那契数列

第一种方法:递归

function fibonacci(n){
  if (n==0){
    return 0;
  }else if (n==1){
    return 1;
  }
  return fibonacci(n-1)+fibonacci(n-2);
}

网上现有的方法是:

function fibonacci(n){
  if (n==1||n==2){
    return 1;
  }
  return fibonacci(n-1)+fibonacci(n-2);
}

这样做有个不足之处,n取值必须大于0.

第二种方法:循环,非递归

function fibonacci(n){
  var a = 0, b = 1, num = 0;
  if (n==0){
    return 0;
  }else if(n==1){
    return 1;
  }
  for(var i=1;i<n;i++){
    num = a + b;
    a = b;
    b = num;
  }
  return num;
}

网上现有方法不含有判断部分,n取值需大于1.

posted @ 2015-10-19 15:57  平底斜  阅读(897)  评论(0编辑  收藏  举报