这里注意不是求出第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))