斐波那契数列以及优化

385 阅读1分钟

斐波那契数列以及优化

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]
}