返回介绍

斐波那契数列

发布于 2024-09-07 20:34:44 字数 656 浏览 0 评论 0 收藏 0

F(n) = F(n - 1) + F(n - 2),其中 n > 1

暴力递归版本

function fib(n) {
  if(n == 0) return 0
  if(n == 1 || n == 2) return 1
  return fib(n-1) + fib(n-2)
}

// console.log(fib(4)) //F(4)=F(3)+F(2)=F(2)+F(1)+F(2)=1+1+1=3
let t = +new Date()
console.log(fib(40)) //102334155
console.log(+new Date()-t) //783ms

优化版本

function fib2(n) {
  if(fib2[n] !== undefined) return fib2[n]
  if(n == 0) return 0
  if(n == 1 || n == 2) return 1

  const res = fib2(n-1) + fib2(n-2)
  fib2[n] = res
  return res
}
let t1 = +new Date()
console.log(fib2(40)) //102334155
console.log(+new Date()-t1)  //5ms

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文