大厂面试题练习-斐波拉契数列


题目:斐波拉契数列

示例

// 斐波那契数列为:[1,1,2,3,5,8,13,21,…]

输入:1
输出:1

输入:4
输出:5

答案

方法一

利用递归(容易栈溢出)

function fibonacci(count) {
  if (count <= 1) return 1;
  return fibonacci(count - 1) + fibonacci(count - 2);
}
console.log(fibonacci(4)); // 5
console.log(fibonacci(5)); // 8

方法二

利用数组算出前 count 项斐波拉契数组,然后取出最后一项

function fibonacci(count) {
  if (count <= 1) return 1;
  let res = [1, 1];
  for (let i = 2; i <= count; i++) {
    const item = res[i - 1] + res[i - 2];
    res.push(item);
  }
  return res[count];
}
console.log(fibonacci(4)); // 5
console.log(fibonacci(5)); // 8

文章作者: CassielLee
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 CassielLee !
评论
  目录