当前位置:首页 > JavaScript

js实现fibonacci

2026-02-01 09:15:47JavaScript

JavaScript 实现斐波那契数列

斐波那契数列是一个经典的数学问题,其中每个数字是前两个数字的和,通常以 0 和 1 开始。以下是几种常见的实现方式。

递归实现

递归方法是最直观的实现方式,但效率较低,因为会重复计算相同的子问题。

function fibonacciRecursive(n) {
  if (n <= 1) return n;
  return fibonacciRecursive(n - 1) + fibonacciRecursive(n - 2);
}

迭代实现

迭代方法通过循环计算斐波那契数列,效率更高,适合大规模计算。

function fibonacciIterative(n) {
  if (n <= 1) return n;
  let a = 0, b = 1, temp;
  for (let i = 2; i <= n; i++) {
    temp = a + b;
    a = b;
    b = temp;
  }
  return b;
}

动态规划实现

动态规划方法通过存储已计算的值来避免重复计算,结合了递归的直观性和迭代的效率。

function fibonacciDP(n, memo = {}) {
  if (n <= 1) return n;
  if (memo[n]) return memo[n];
  memo[n] = fibonacciDP(n - 1, memo) + fibonacciDP(n - 2, memo);
  return memo[n];
}

生成斐波那契数列

如果需要生成前 n 项的斐波那契数列,可以使用以下方法。

js实现fibonacci

function generateFibonacciSequence(n) {
  const sequence = [0, 1];
  for (let i = 2; i < n; i++) {
    sequence.push(sequence[i - 1] + sequence[i - 2]);
  }
  return sequence.slice(0, n);
}

性能比较

  • 递归方法的时间复杂度为 O(2^n),适合小规模计算。
  • 迭代和动态规划方法的时间复杂度为 O(n),适合大规模计算。
  • 动态规划方法在递归基础上优化,但需要额外空间存储中间结果。

标签: jsfibonacci
分享给朋友:

相关文章

使用js实现

使用js实现

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

js实现自举

js实现自举

实现 JavaScript 自举的方法 JavaScript 自举(Bootstrap)通常指通过 JavaScript 动态加载自身或依赖的脚本,实现运行时环境的初始化或扩展。以下是几种常见实现方式…

js画图实现

js画图实现

使用Canvas API绘制图形 Canvas是HTML5提供的绘图API,通过JavaScript操作Canvas元素可以绘制各种图形。以下是一个简单的示例: <canvas id="myC…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js实现原理

js实现原理

JavaScript 实现原理 JavaScript 是一种解释型语言,其实现原理涉及多个核心组件和运行机制,包括引擎、运行时环境、事件循环等。 引擎与解释执行 现代 JavaScript 引擎(如…