c语言实现斐波那契数列的代码
时间: 2024-11-13 16:15:25 浏览: 0
在C语言中,可以使用递归或者循环的方式来实现斐波那契数列。这里分别给出两种常见的实现方法:
1. **递归**:
```c
#include <stdio.h>
int fibonacci(int n) {
if (n <= 1) {
return n;
}
else {
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
int main() {
int num_terms;
printf("请输入要计算的斐波那契数列项数:");
scanf("%d", &num_terms);
for (int i = 0; i < num_terms; ++i) {
printf("第 %d 项是:%d\n", i+1, fibonacci(i));
}
return 0;
}
```
注意:递归实现虽然简洁,但如果项数较大,效率较低,因为它会重复计算许多子问题。
2. **循环**:
```c
#include <stdio.h>
void fibonacci(int n, int* fib) {
if (n <= 1) {
fib[n] = n;
} else {
fib[n] = fib[n - 1] + fib[n - 2];
}
}
int main() {
int num_terms;
printf("请输入要计算的斐波那契数列项数:");
scanf("%d", &num_terms);
int fib[num_terms + 1]; // 初始化数组
fib[0] = 0; // 第一项
fib[1] = 1; // 第二项
for (int i = 2; i <= num_terms; ++i) {
fibonacci(i, fib);
printf("第 %d 项是:%d\n", i, fib[i]);
}
return 0;
}
```
在这个循环版本中,我们直接计算并存储每一项,避免了重复计算。
阅读全文