当前位置:首页 > JavaScript

js实现fibonacci

2026-02-01 09:15:47JavaScript

JavaScript 实现斐波那契数列

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

递归实现

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

js实现fibonacci

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

迭代实现

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

js实现fibonacci

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 项的斐波那契数列,可以使用以下方法。

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实现跳转

使用 window.location 跳转 通过修改 window.location.href 或直接使用 window.location 实现页面跳转,适用于普通跳转或带参数的 URL。 // 方…

jquery.js

jquery.js

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

js实现延迟

js实现延迟

实现延迟的方法 在JavaScript中,实现延迟操作有多种方式,以下是几种常见的方法: 使用setTimeout函数 setTimeout是JavaScript中最常用的延迟执行方法。它接受一个回…

js实现变形

js实现变形

使用 CSS 和 JavaScript 实现元素变形 在 JavaScript 中实现变形效果通常结合 CSS 的 transform 属性,通过动态修改该属性实现元素的旋转、缩放、倾斜或平移。 基…

js实现祖玛

js实现祖玛

实现祖玛游戏的核心思路 祖玛游戏的核心玩法是发射彩色珠子,形成三个或以上相同颜色的珠子即可消除。以下是使用JavaScript实现的基本框架。 游戏初始化 创建画布并初始化游戏状态: const…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…