c语言用递归函数求菲波那契数列的第n项
时间: 2024-09-19 19:07:48 浏览: 20
在C语言中,你可以使用递归函数来求解斐波那契数列的第n项。斐波那契数列是一个每个数字都是前两个数字之和的序列,通常开始两项是0和1。下面是递归函数的一个简单实现:
```c
#include <stdio.h>
// 递归函数计算斐波那契数列的第n项
int fibonacci(int n) {
// 基础情况:若n小于等于1,则返回n本身
if (n <= 1)
return n;
// 递归情况:如果n大于1,返回前两项的和
else
return fibonacci(n - 2);
}
int main() {
int n; // 用户输入的项数
printf("请输入要计算的斐波那契数列的项数:");
scanf("%d", &n);
// 检查输入是否合法并避免无限递归
if (n < 0)
printf("错误:斐波那契数列的项数不能为负。\n");
else
printf("斐波那契数列的第%d项是:%d\n", n, fibonacci(n));
return 0;
}
```
相关问题
用C语言编写:请用递归函数计算斐波那契数列第n项的值
好的,这个问题属于计算机科学类问题。下面是用递归函数计算斐波那契数列第n项的C语言代码:
```c
int fibonacci(int n)
{
if (n <= 1)
return n;
else
return fibonacci(n-1) + fibonacci(n-2);
}
```
调用`fibonacci(n)`可以得到第n项的值。
c语言 用递归方法求斐波那契数列前 30 项的值。已知前两项都是 1。要求每行输出 6 个数。
可以使用递归方法实现斐波那契数列,具体代码如下所示:
```c
#include <stdio.h>
// 定义斐波那契数列递归函数
int fibonacci(int n) {
if (n == 1 || n == 2) { // 当n为1或者2时,返回1
return 1;
} else { // 当n大于2时,返回前两项的和
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main() {
int i;
for (i = 1; i <= 30; i++) {
printf("%d ", fibonacci(i));
if (i % 6 == 0) { // 每输出6个数换行
printf("\n");
}
}
return 0;
}
```
输出结果为:
```
1 1 2 3 5 8
13 21 34 55 89 144
233 377 610 987 1597 2584
4181 6765 10946 17711 28657 46368
75025 121393 196418 317811 514229 832040
```