1.1.2.3.5.8.13.21 js实现
使用 JavaScript 生成斐波那契数列
斐波那契数列是一个经典的数学序列,其中每个数字是前两个数字之和。以下是用 JavaScript 实现斐波那契数列的几种方法。
使用循环生成斐波那契数列
通过循环可以高效地生成斐波那契数列的前 N 项。

function fibonacci(n) {
const sequence = [1, 1];
for (let i = 2; i < n; i++) {
sequence.push(sequence[i - 1] + sequence[i - 2]);
}
return sequence;
}
console.log(fibonacci(7)); // 输出: [1, 1, 2, 3, 5, 8, 13]
使用递归生成斐波那契数列
递归方法虽然简洁,但对于较大的 n 值性能较差。

function fibonacci(n) {
if (n <= 1) return 1;
return fibonacci(n - 1) + fibonacci(n - 2);
}
// 生成前 7 项
const sequence = [];
for (let i = 0; i < 7; i++) {
sequence.push(fibonacci(i));
}
console.log(sequence); // 输出: [1, 1, 2, 3, 5, 8, 13]
使用动态规划优化递归
通过缓存已计算的值,可以显著提高递归方法的性能。
function fibonacci(n, memo = {}) {
if (n in memo) return memo[n];
if (n <= 1) return 1;
memo[n] = fibonacci(n - 1, memo) + fibonacci(n - 2, memo);
return memo[n];
}
// 生成前 7 项
const sequence = [];
for (let i = 0; i < 7; i++) {
sequence.push(fibonacci(i));
}
console.log(sequence); // 输出: [1, 1, 2, 3, 5, 8, 13]
使用生成器函数
生成器函数可以按需生成斐波那契数列的值,适合处理无限序列。
function* fibonacciGenerator() {
let a = 1, b = 1;
yield a;
yield b;
while (true) {
[a, b] = [b, a + b];
yield b;
}
}
// 获取前 7 项
const fib = fibonacciGenerator();
const sequence = [];
for (let i = 0; i < 7; i++) {
sequence.push(fib.next().value);
}
console.log(sequence); // 输出: [1, 1, 2, 3, 5, 8, 13]
注意事项
- 循环方法是最高效的方式,适合生成固定长度的序列。
- 递归方法简单但性能较差,适合学习递归概念。
- 动态规划方法优化了递归的性能,适合需要多次计算的场景。
- 生成器函数适合需要按需生成值的场景,如无限序列。
根据具体需求选择合适的方法。






