📜  C语言中的斐波那契数列(1)

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

C语言中的斐波那契数列

斐波那契数列是指这样一个数列: 1, 1, 2, 3, 5, 8, 13, 21, ...... 在数学上,斐波那契数列以如下被以递推的方法定义:F(0) = 0,F(1) = 1, F(n) = F(n - 1) + F(n - 2)(n ≥ 2,n ∈ N*)。即从第三项起,每一项都等于前两项之和。该数列从第三项开始,每一项都等于前两项之和。

在C语言中实现斐波那契数列的计算非常简单。下面我们将介绍两种常见的实现方法。

方法一:递归实现斐波那契数列

递归实现斐波那契数列的代码如下:

int fibonacci(int n) {
    if (n == 0) {
        return 0;
    } else if (n == 1) {
        return 1;
    } else {
        return fibonacci(n-1) + fibonacci(n-2);
    }
}

这个代码用了递归的思想来计算斐波那契数列,但是递归实现的效率不高。随着n的增大,递归次数不断增加,时间复杂度呈指数级增长,效率差,我们需要用其他方法来提高效率。

方法二:循环实现斐波那契数列

循环实现斐波那契数列的代码如下:

int fibonacci(int n) {
    int a = 0;
    int b = 1;
    int c = 0;

    if (n == 0) return 0;

    for (int i = 2; i <= n; i++) {
        c = a + b;
        a = b;
        b = c;
    }

    return b;
}

循环实现斐波那契数列的时间复杂度为O(n),相比较递归实现的效率更高。

总结:对于这样一段简单的代码实现,我们介绍了两种不同的方法,因此在考虑性能和效率的情况下,循环方法是更推荐的。