📜  获取斐波那契数的数组 javascript (1)

📅  最后修改于: 2023-12-03 15:41:28.713000             🧑  作者: Mango

获取斐波那契数的数组

斐波那契数列是指每个数字都是其前两个数字之和的数列,前几个数字为: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 ...

在 JavaScript 中,我们可以使用不同的方法来获取斐波那契数的数组。在本文中,我们将介绍两种常用的方法。

方法一:使用递归

递归是一种自己调用自己的方法。我们可以使用递归来获取斐波那契数的数组,如下所示:

function getFibonacciSeries(n) {
    if (n === 1) {
        return [0, 1];
    } else {
        var arr = getFibonacciSeries(n - 1);
        arr.push(arr[arr.length - 1] + arr[arr.length - 2]);
        return arr;
    }
}

var result = getFibonacciSeries(10); // 获取前10个斐波那契数的数组
console.log(result); // [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

代码中,我们使用了递归来获取前 n 个斐波那契数的数组。如果 n=1,则返回 [0, 1],否则我们通过调用 getFibonacciSeries(n - 1) 递归得到前 n-1 个斐波那契数的数组,并通过 push 方法添加最后一个元素和倒数第二个元素的和到数组中,最终返回斐波那契数的数组。

方法二:使用循环

在大多数情况下,循环是比递归更高效的方法。我们可以使用循环来获取斐波那契数的数组,如下所示:

function getFibonacciSeries(n) {
    var arr = [0, 1];
    if (n <= 2) {
        return arr.slice(0, n);
    } else {
        for (var i = 2; i < n; i++) {
            arr.push(arr[i - 1] + arr[i - 2]);
        }
    }
    return arr;
}

var result = getFibonacciSeries(10); // 获取前10个斐波那契数的数组
console.log(result); // [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

代码中,我们使用了循环来获取前 n 个斐波那契数的数组。如果 n <= 2,则直接返回 [0, 1],否则我们从 i=2 开始循环到 i=n-1,每次将 arr[i-1] 和 arr[i-2] 的和添加到数组中,最终返回斐波那契数的数组。

总结

在 JavaScript 中,我们可以使用递归或者循环来获取斐波那契数的数组。递归的实现简单,但是存在性能问题,循环比递归更高效,但需要更多的代码。根据实际情况选择合适的方法来获取斐波那契数的数组。