如何用C语言实现递归或迭代的方式来计算斐波那契数列?
时间: 2024-11-13 09:25:35 浏览: 3
在C语言中,可以使用递归和迭代两种方法来计算斐波那契数列。
**递归实现**:
```c
#include <stdio.h>
// 递归函数计算斐波那契数
int fibonacci_recursive(int n) {
if (n <= 1)
return n;
else
return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2);
}
int main() {
int num = 10; // 想要计算的第几个斐波那契数
printf("The %dth Fibonacci number is: %d\n", num, fibonacci_recursive(num));
return 0;
}
```
**迭代实现**:
```c
#include <stdio.h>
int fibonacci_iterative(int n) {
int a = 0, b = 1, temp;
if (n == 0)
return a;
for (int i = 1; i < n; ++i) {
temp = a;
a = b;
b = temp + b;
}
return b;
}
int main() {
int num = 10;
printf("The %dth Fibonacci number is: %d\n", num, fibonacci_iterative(num));
return 0;
}
```
这两种方法各有优缺点,递归简洁但效率较低(因为它会重复计算很多值),而迭代更高效但代码结构相对复杂一些。
阅读全文