当前位置:首页 > JavaScript

1.1.2.3.5.8.13.21 js实现

2026-04-06 15:42:07JavaScript

使用 JavaScript 生成斐波那契数列

斐波那契数列是一个经典的数学序列,其中每个数字是前两个数字之和。以下是用 JavaScript 实现斐波那契数列的几种方法。

使用循环生成斐波那契数列

通过循环可以高效地生成斐波那契数列的前 N 项。

1.1.2.3.5.8.13.21 js实现

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 值性能较差。

1.1.2.3.5.8.13.21 js实现

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]

注意事项

  • 循环方法是最高效的方式,适合生成固定长度的序列。
  • 递归方法简单但性能较差,适合学习递归概念。
  • 动态规划方法优化了递归的性能,适合需要多次计算的场景。
  • 生成器函数适合需要按需生成值的场景,如无限序列。

根据具体需求选择合适的方法。

标签: js
分享给朋友:

相关文章

js实现验证

js实现验证

验证表单输入 使用JavaScript验证表单输入是常见的需求。可以通过监听表单提交事件,检查输入字段是否符合要求。 document.getElementById('myForm').addEve…

js实现乘

js实现乘

JavaScript 实现乘法运算 在 JavaScript 中实现乘法运算可以通过多种方式完成,包括基本运算符、函数封装以及高级算法(如大数乘法)。以下是几种常见方法: 使用基本乘法运算符 Jav…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获取 jQ…

js实现预览

js实现预览

文件上传预览实现 使用JavaScript实现文件上传预览功能,可以通过FileReader对象读取文件内容并显示预览。以下代码支持图片、文本和PDF文件的预览: // HTML部分需要包含…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

使用js实现

使用js实现

使用JavaScript实现 JavaScript可以通过Math.random()函数生成随机数,结合其他方法可以实现多种随机数生成需求。 // 生成0到1之间的随机小数 const random…