用c语言递归实现斐波那契数列
时间: 2023-09-26 12:08:28 浏览: 99
#include <stdio.h>
int fibonacci(int n) {
if (n == 0 || n == 1) {
return n;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main() {
int n;
printf("请输入要求的斐波那契数列的项数:");
scanf("%d", &n);
for (int i=0; i<n; i++) {
printf("%d ", fibonacci(i));
}
return 0;
}
相关问题
C语言如何通过递归实现斐波那契数列?
在C语言中,通过递归可以简洁地表示斐波那契数列的概念,因为每个数都是前面两个数的和。下面是一个递归版本的斐波那契函数示例:
```c
#include <stdio.h>
// 递归函数定义
int fibonacci(int n) {
// 基本情况:当 n 等于 0 或 1 时,返回 n
if(n <= 1)
return n;
// 递归情况:对于更大的 n,返回前两个数的和
else
return fibonacci(n-1) + fibonacci(n-2);
}
int main() {
int num;
printf("请输入一个正整数: ");
scanf("%d", &num);
// 输出斐波那契数列的第 num 项
printf("Fibonacci(%d) = %d\n", num, fibonacci(num));
return 0;
}
```
递归方法虽然简洁,但对于较大的n值,由于重复计算了很多已经计算过的数值,效率较低,可能会导致栈溢出。因此,递归不是处理大量斐波那契数的理想选择。
c语言递归实现斐波那契数列代码
下面是C语言递归实现斐波那契数列的代码:
```c
#include <stdio.h>
int fun(int n) {
if(n == 1 || n == 2) {
return 1;
} else {
return fun(n-1) + fun(n-2);
}
}
int main() {
int i, n;
printf("请输入你要打印的斐波那契数列项数:\n");
scanf("%d", &n);
printf("斐波那契数列:");
for(i = 1; i <= n; i++) {
printf("%d ", fun(i));
}
return 0;
}
```
该代码通过递归的方式实现了斐波那契数列的求解,其中fun函数用于递归求解第n项斐波那契数列的值,main函数中通过循环调用fun函数来打印出前n项斐波那契数列的值。
阅读全文
相关推荐












