输出前n项斐波拉契数列

这里注意不是求出第n项斐波拉契数列。
法一:动态规划的方式。

function getFib(n){
  let dp = [0]
  dp[1] = 1
  dp[2] = 1
  for(let i = 3; i <= n; i++){     
      dp[i] = dp[i-2] + dp[i-1]
  }
  return dp.slice(1)
}
console.log(getFib(6))

法二:递归的方式

let getArray = (x) => {
    let arr= [0] //用于存储数组
    function getFib(x){
        if(x === 1 || x === 2){//递归出口
            arr[x] = 1
            return 1
        }
        let res = getFib(x-1) + getFib(x-2)
        arr[x] = res  //在递归出栈时保存这个值
        return res
    }
    getFib(x)
    return arr.slice(1)
}
console.log(getArray(4))

你可能感兴趣的:(输出前n项斐波拉契数列)