JavaScript 中的斐波那契数列

2025年7月30日 | 阅读 8 分钟

本文将讨论斐波那契数列以及如何在 JavaScript 中生成斐波那契数列。

它是一个数列,通过将前两个数字相加来生成后续数字。斐波那契数列的前两项分别是 **零** 和 **一**。接下来的项是前两项之和。

Fibonacci series in JavaScript

斐波那契数列的表示

Fn 表示前两项 **(Fn - 1)** 和 ( **Fn - 2)** 的和。其中 Fn-1 是斐波那契数列的第 1 项,Fn-2 是第 2 项。

示例

  • 数列的第一项是 0
  • 数列的第二项是 1
  • 数列的第三项是 (0 + 1) = 1
  • 数列的第四项是 (第二项 + 第三项) = (1 + 1) = 2
  • 数列的第五项是 (第三项 + 第四项) = 1 + 2 = 3

生成的数列是:0, 1, 1, 2, 3,依此类推。同样,我们可以找到后续项的数列。

生成 n 个数字的斐波那契数列的步骤

以下是查找斐波那契数列的步骤:

步骤 1: 声明变量 x、y、z、n 和 i。

xy 将存储前两项,z 是下一项,n 是计数,i 是循环计数器。

步骤 2: 初始化局部变量

  • x = 0 (第一个斐波那契数)
  • y = 1 (第二个斐波那契数)
  • i = 2 (因为前两个数字已知)

步骤 3: 从用户处读取 n 的值。

步骤 4: 显示 x 和 y 的值。

步骤 5: 重复斐波那契数列的过程,直到 i > n。

  • z = x + y
  • 显示 z 的值
  • x = y, y = z
  • i = i + 1

步骤 6: 停止斐波那契数列的执行。

获取最多 n 项的斐波那契数列

让我们以一个例子来说明如何使用 **for 循环** 在 JavaScript 中获取指定数量的斐波那契数列。

代码

示例

立即执行

输出

执行上述程序时,会显示输出。有一个提示框用于定义斐波那契数列的限制,您可以在其中输入限制,然后单击 **确定** 按钮继续。

Fibonacci series in JavaScript

输入斐波那契数列的限制为 11 并按下确定按钮后。

Fibonacci series in JavaScript

它显示了以 0 和 1 开头的斐波那契数列。下一项是其前两项之和,如下所示。

Fibonacci series in JavaScript

获取前 8 项的斐波那契数列

让我们以一个例子来说明如何使用 **for** 和 **if-else** 语句在 JavaScript 中获取前 8 项的斐波那契数列。

代码

示例

立即执行

输出

Fibonacci series in JavaScript

获取前 7 项斐波那契数列的和

让我们以一个例子来说明如何使用函数和 for 循环在 JavaScript 中获取斐波那契数列的和。

代码

示例

立即执行

输出

执行上述代码时,会显示一个提示框,该提示框接受一个数字以返回斐波那契数列的和。

Fibonacci series in JavaScript

此处,我们输入 7 作为输入以返回数列的和,如下所示。

Fibonacci series in JavaScript

单击确定按钮后,它将返回前 7 项的和,即 21。

Fibonacci series in JavaScript

使用递归函数获取斐波那契数列

让我们以一个例子来说明如何使用递归函数在 JavaScript 中获取斐波那契数列。

代码

示例

立即执行

输出

Fibonacci series in JavaScript

在上面的程序中,我们使用递归函数创建了斐波那契数列,该函数避免了使用显式循环。recur() 函数递归地调用自身,该函数每次都会将 num 的值减 1,直到达到返回 [0, 1] 的基本情况 recur(1)。

从递归返回时,每次调用都会通过将数列的最后两项相加来计算下一个斐波那契数,并使用 push() 方法将其附加。最后,完整的数列将被返回并在网页上显示。

按逆序获取斐波那契数列

让我们以一个例子来说明如何使用 for 循环按逆序获取斐波那契数列。

代码

示例

立即执行

输出

执行上述代码时,会显示一个提示框,用于从用户处获取一个数字。

Fibonacci series in JavaScript

这里我们输入 10 并单击确定按钮。之后,它将按升序和降序生成前 10 项的斐波那契数列。

Fibonacci series in JavaScript

常见问题解答 (FAQs)

1. JavaScript 中的斐波那契数列是什么?

斐波那契数列是一系列数字,以 0 和 1 开始,下一个数字是前两个数字的总和。该序列一直延续下去。该序列表示为 0, 1, 1, 2, 3, 5,依此类推。

2. 理解 JavaScript 中的斐波那契数列有何意义?

斐波那契数列对于初学者理解递归、循环和数组操作等基本编程概念非常有帮助。这是在 JavaScript 中获得实际编程经验、逻辑思维和代码语法的现实方法。

3. 在 JavaScript 中创建斐波那契数列,迭代还是递归更好?

迭代和递归都有其优点和缺点。迭代通常更有条理,速度更快,特别是对于大型序列。与迭代相比,JavaScript 中的递归更优雅、更容易理解,但对于大型序列来说效率可能较低且内存占用更多。

4. 斐波那契数列有一些实际应用吗?

斐波那契数列被用于许多实际应用中。它包括财务规划、算法优化,甚至用于分析生物结构和现象。

5. 我们可以使用 JavaScript 将斐波那契数列打印到网页上吗?

是的,我们可以使用 JavaScript 在网页上创建和显示斐波那契数列。我们可以利用文档操作方法来创建元素并将其插入 HTML 中以展示该数列。

6. JavaScript 中广泛使用的斐波那契数列算法是什么?

通常,开发人员会使用 **for 循环** 或 **while 循环** 来创建斐波那契数列。

7. JavaScript 中的斐波那契数列如何工作?

斐波那契数列是 JavaScript 中的一个数值序列,它以两个固定数字 0 和 1 开始。该数列中的每个数字都可以通过前两个数字相加来创建。

8. 找到斐波那契数列需要多少个变量?

通常,开发人员需要声明三个变量。其中两个变量用于保存数列的前两个数字,第三个变量用于存储前两个数字的和。