📅  最后修改于: 2023-12-03 15:00:13.868000             🧑  作者: Mango
斐波那契数列是指这样一个数列: 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),相比较递归实现的效率更高。
总结:对于这样一段简单的代码实现,我们介绍了两种不同的方法,因此在考虑性能和效率的情况下,循环方法是更推荐的。