c语言中斐波那契数列第n项
时间: 2024-12-05 15:15:45 浏览: 23
C语言求Fibonacci斐波那契数列通项问题的解法总结
5星 · 资源好评率100%
在C语言中计算斐波那契数列的第n项,可以使用递归或循环的方式。递归是一种直接但效率较低的方法,而循环则更为高效。以下是递归版本的实现:
```c
#include <stdio.h>
// 递归函数计算斐波那契数列第n项
int fibonacci_recursive(int n) {
if (n <= 1)
return n;
else
return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2);
}
int main() {
int n, i;
printf("请输入斐波那契数列的项数: ");
scanf("%d", &n);
// 防止输入过大导致栈溢出
if (n < 0) {
printf("错误: 斐波那契数列从0开始,负数项不存在。\n");
} else {
printf("斐波那契数列的第%d项是: %d\n", n, fibonacci_recursive(n));
}
return 0;
}
```
如果你需要循环实现,可以这样做:
```c
#include <stdio.h>
// 循环计算斐波那契数列第n项
int fibonacci_iterative(int n) {
if (n <= 1)
return n;
int t1 = 0, t2 = 1, nextTerm;
for (int i = 2; i <= n; i++) {
nextTerm = t1 + t2;
t1 = t2;
t2 = nextTerm;
}
return nextTerm;
}
int main() {
int n;
printf("请输入斐波那契数列的项数: ");
scanf("%d", &n);
if (n < 0) {
printf("错误: 斐波那契数列从0开始,负数项不存在。\n");
} else {
printf("斐波那契数列的第%d项是: %d\n", n, fibonacci_iterative(n));
}
return 0;
}
```
阅读全文