举一个C语言递归的例子
时间: 2023-09-25 16:06:50 浏览: 173
### 回答1:
好的,一个经典的C语言递归例子是计算阶乘。代码如下:
```c
#include <stdio.h>
int factorial(int n) {
if (n == ) {
return 1;
} else {
return n * factorial(n-1);
}
}
int main() {
int n = 5;
int result = factorial(n);
printf("%d! = %d\n", n, result);
return ;
}
```
这个程序会输出:
```
5! = 120
```
这里使用了递归来计算阶乘,当n等于时,递归结束,返回1;否则,递归调用自身来计算n-1的阶乘,然后将n乘以这个结果。
### 回答2:
一个经典的C语言递归例子是计算阶乘。阶乘是指从1到给定数字之间所有整数的乘积。
下面是一个阶乘函数的例子:
```c
#include <stdio.h>
int factorial(int num) {
if (num == 0 || num == 1) {
return 1;
} else {
return num * factorial(num - 1);
}
}
int main() {
int n, result;
printf("请输入一个整数 n:");
scanf("%d", &n);
result = factorial(n);
printf("%d的阶乘为:%d\n", n, result);
return 0;
}
```
在上面的代码中,`factorial`函数用于计算给定整数`num`的阶乘。如果`num`为0或1,则返回1。否则,函数会调用自身并将`num - 1`作为参数传递给递归调用,然后将返回值乘以`num`。
在`main`函数中,用户会被要求输入一个整数`n`,然后调用`factorial`函数计算`n`的阶乘,最后将结果打印出来。
通过递归,程序能够在每一次迭代中减小问题的规模,直到达到基本情况(num为0或1)后结束递归调用。通过这种方式,我们可以避免使用循环结构来计算阶乘。
### 回答3:
C语言递归的一个例子是计算阶乘。阶乘是一个正整数n的阶乘是所有小于等于n的正整数的乘积。
下面是一个使用递归函数计算阶乘的C程序:
```
#include <stdio.h>
int factorial(int n) {
if (n == 0) { // 基本情况:0的阶乘为1
return 1;
} else {
return n * factorial(n - 1); // 递归调用,计算 n 的阶乘
}
}
int main() {
int number;
printf("请输入一个非负整数:");
scanf("%d", &number);
int result = factorial(number); // 调用递归函数计算阶乘
printf("阶乘结果为:%d\n", result);
return 0;
}
```
以上程序中的factorial函数是一个递归函数,它接收一个整数n作为参数,并返回n的阶乘。在函数内部,我们首先检查n是否等于0,如果等于0,则函数返回1作为基本情况。否则,我们使用递归调用factorial函数来计算n-1的阶乘,然后将n和阶乘结果相乘,最后返回结果。
在main函数中,我们从用户输入获取一个非负整数,并将其作为参数传递给factorial函数来计算阶乘。最后,我们打印出阶乘的结果。
通过递归调用,我们可以简单地实现复杂的计算过程,但需要注意递归深度和终止条件,以避免无限递归和堆栈溢出的问题。
阅读全文