Skip to content

✍️ 斐波那契数列

js
1、 递归法
function fibonacciMemorization(index) {
  const memo = [0, 1]
  const fibonacci = n => {
    if (memo[n] !== null) return memo[n]
    const result = fibonacci(n - 1) + fibonacci(n - 2)
    memo[n] = result
    return result
  }
  return fibonacci(index)
}

2、 循环法
function fibonacciMemorization(n) {
  if (n < 2) {
    return n
  }
  let p = 0
  let q = 0
  let r = 1
  for (let i = 2; i <= n; ++i) {
    p = q
    q = r
    r = p + q
  }
  return r
}