用C语言实现一个简单的递归函数
时间: 2024-01-01 08:50:37 浏览: 41
下面是一个简单的递归函数,该函数用于计算斐波那契数列中第n个数的值。
```c
#include <stdio.h>
int fibonacci(int n) {
if (n == 1 || n == 2) {
return 1;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
printf("斐波那契数列中第%d个数的值为:%d\n", n, fibonacci(n));
return 0;
}
```
该程序中的fibonacci函数是一个递归函数,它的作用是计算斐波那契数列中第n个数的值。如果n等于1或2,那么它的值就是1;否则,它的值就是前两个数的和,即fibonacci(n-1)+fibonacci(n-2)。由于斐波那契数列中的每个数都可以通过前两个数相加得到,因此这个递归函数可以不断地调用自身来计算出结果。当递归到n等于1或2时,递归就会停止,从而得到最终的结果。
相关问题
用c语言写一个递归函数
好的,下面是一个简单的递归函数示例:
```
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int num;
printf("请输入一个数:");
scanf("%d", &num);
printf("%d 的阶乘是 %d\n", num, factorial(num));
return 0;
}
```
这个程序实现了求阶乘的递归函数,`factorial()` 函数通过调用自身来实现递归。如果输入的数是 0,函数返回 1;否则,通过将输入的数乘以 `factorial(n-1)` 的结果,来实现递归调用。
用C语言编写一个递归函数
以下是一个计算斐波那契数列的递归函数示例:
```c
#include <stdio.h>
int fib(int n) {
if (n == 0 || n == 1) {
return n;
}
else {
return fib(n-1) + fib(n-2);
}
}
int main() {
int n;
printf("请输入要计算的斐波那契数列项数:");
scanf("%d", &n);
printf("斐波那契数列的第%d项为:%d\n", n, fib(n));
return 0;
}
```
在这个例子中,我们定义了一个名为 `fib` 的递归函数,该函数接收一个整数参数 `n`,并返回斐波那契数列的第 `n` 项。如果 `n` 等于 0 或 1,函数将直接返回 `n`。否则,函数将递归地调用自身,计算第 `n-1` 和 `n-2` 项的值,并将它们相加返回。
在 `main` 函数中,我们从用户那里获取要计算的斐波那契数列项数,然后调用 `fib` 函数计算对应的项数。最后,我们将结果输出到屏幕上。