生成指定个数的斐波那契数列
function fun(n){
if(n==1){
return [1]
}else if(n==2){
return [1,1]
}else{
let arr = [1, 1]
for(let i = 2; i< n; i++){
arr.push(arr[i-1] + arr[i-2])
}
return arr
}
}
console.log(fun(9))//[1, 1, 2, 3, 5, 8, 13, 21, 34]
计算斐波那契数列的第n项
function fun(n){
if(n===1 || n===2) return 1
let n1=1,n2=1
for(let i = 2; i< n; i++){
[n1,n2] = [n2,n1+n2]
}
return n2
}
console.log(fun(5))//5
生成指定数值前的斐波那契数列
function fun(num){
let arr = [1, 1]
let nextNum = 0
while((nextNum = arr[0] + arr[1]) <= num){
arr.unshift(nextNum)
}
return arr.reverse()
}
console.log(fun(59))//[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]