0
点赞
收藏
分享

微信扫一扫

尾调用优化 JavaScript 递归

// 1. 递归法(×)
// function fib(n) {
//   if (n < 2) return n
//   return fib(n - 1) + fib(n - 2)
// }


// 2. 尾递归(√)
function fib(n) {
  return calcFib(0, 1, n)
}

function calcFib(a, b, n) {
  if (n === 0) return a
  return calcFib(b, a + b, n - 1)
}

console.log(
  fib(100)
)
举报

相关推荐

0 条评论