斐波那契数列以及优化
1.什么是斐波那契数列 第n项,是前两项的和。比方说n=3,那么n3=n(n-1)+n(n-2) 0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)
用js实现斐波那契数列
// 缺点1.当n项数非常大的时候,时间复杂度高控制台调试
// 2. 没有使用场景
function sequence(n) {
if (n===0) return 0
if (n===1) return 1
return sequence(n-1)+sequence(n-2)
}
console.log(sequence(3))
用空间换时间,用大数表示,可以精确长度
// 放到一个数组里 牺牲变量占用的内存从而优化时间
function sequence(n) {
let dict=[0n,1n]
console.log(dict)
for(let i=2;i<=n;i++) {
dict[i]=dict[i-1]+dict[i-2]
}
return dict[n]
}
console.log(sequence(3))
// 进一步优化
let [v1,v2]=[0n,1n]
for(let i=2;i<=n;i++) {
[v1,v2]=[v2,v1+v2]
}