📜  如何在 JavaScript 中计算斐波那契数列?

📅  最后修改于: 2022-05-13 01:56:38.079000             🧑  作者: Mango

如何在 JavaScript 中计算斐波那契数列?

斐波那契数列是一个数字系列,包含以下模式的整数。

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ..

在数学方面,计算斐波那契数列的一般公式是

fn = fn-1 + fn-2 , where n ≥ 2

这里, f 0 = 0f 1 = 1

我们需要为任何给定的整数n计算n 个斐波那契数,其中 n≥0。

例子:

Input   : n = 5
Output  : [0, 1, 1, 2, 3]

Input   : n = 10
Output  : [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

在本文中,我们将重点介绍计算斐波那契数列的两种主要和常用方法。

  1. 使用For 循环While 循环
  2. 使用递归

使用循环:与递归方法相比,使用这种方法计算斐波那契数列的方法更好。此方法利用动态编程,它通过存储到目前为止生成的数字,然后将其用于进一步计算。

由于n=1n=2的数字是固定的,即01 ,因此该系列中的其余数字可以通过逻辑计算,

f3 = f2 + f1
f4 = f3 + f2
f5 = f4 + f3
...
fn = fn-1 + fn-2

这个逻辑可以使用for以及 JavaScript 中的while循环来实现。

使用 for 循环:由于序列的前两个值是固定的,我们以 i = 2 开始循环并迭代直到 i < n,因为数组索引从 0 开始,所以,n = 1 在技术上意味着 i = 0,以防万一的数组。

HTML


HTML


HTML


输出:

打印到第 10 个元素的斐波那契数列

使用 while 循环:

HTML


输出:

打印到第 10 个元素的斐波那契数列

使用递归不推荐将整个斐波那契数列打印到某个数字的递归方法,因为递归算法本身在时间和复杂性方面的成本很高,并且随着在某个位置获取斐波那契数列,我们需要存储它们在一个数组中,它为每个元素一次又一次地调用递归函数,即n次!

递归方法可以在 JavaScript 中如下应用。

HTML


输出:

打印到第 10 个元素的斐波那契数列