• 方式一:递归
//构造前两项,判断n是否从第三项即值为2开始。是的话,等于前两项之和,采用递归方式
function fabonacci(n){
      if(n<=1) return 1;        //斐波那契数列前两项,1
    let arr = [1,1];
    return fabonacci(n-2)+fabonacci(n-1)
}
  • 方式二:
function fabonacci(n){
      if(n<=1) return 1;        //斐波那契数列前两项,1
    let arr = [1,1];
    let i = n +1 - 2;        //之后需要构造的项的数量
    while(i>0){
      arr.push(arr[arr.length-1]+arr[arr.length-2])        //依次构造后一项
      i--; 
    }
    return arr[arr.length-1]
}
  • 方式三:递归
function fabonacci(count){
      fn(count,curr=1,next=1){
      if(count=0){
        return 1;
      }else{
        return fn(count-1,next,curr+next)        //把当前项作为下一项
      }
      }
      return fn(count);
}

results matching ""

    No results matching ""