C语言用递归实现阶乘
时间: 2023-12-03 14:47:43 浏览: 113
以下是使用递归实现阶乘的 C 语言代码:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n, result;
printf("请输入一个正整数:");
scanf("%d", &n);
result = factorial(n);
printf("%d的阶乘是:%d\n", n, result);
return 0;
}
```
在上面的代码中,factorial() 是递归函数。当参数 n 等于 1 时,函数返回 1。否则,函数调用自身并返回 n * factorial(n - 1)。在 main() 函数中,用户输入一个正整数 n,然后调用 factorial() 函数计算 n 的阶乘并输出结果。
相关问题
c语言用递归进行阶乘计算
可以使用递归方式来计算阶乘,具体实现如下:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n;
printf("请输入要计算阶乘的数 n:");
scanf("%d", &n);
int result = factorial(n);
printf("%d 的阶乘为 %d\n", n, result);
return 0;
}
```
如果您还有其他问题,欢迎随时提出。
用c语言写递归求阶乘
在C语言中,递归是一种函数自身调用的技术,可以用来求解阶乘的问题。阶乘是一个数的所有小于等于它的正整数的积,例如5的阶乘(5!)就是5 * 4 * 3 * 2 * 1。
下面是一个简单的C语言递归函数,用于计算一个整数n的阶乘:
```c
#include <stdio.h>
// 定义递归函数计算阶乘
unsigned long long factorial(int n) {
if (n == 0 || n == 1) { // 基本情况,0和1的阶乘都是1
return 1;
} else {
return n * factorial(n - 1); // 递归调用,将大问题分解为小问题
}
}
int main() {
int num;
printf("请输入一个非负整数:");
scanf("%d", &num);
if (num >= 0) {
unsigned long long result = factorial(num);
printf("%d 的阶乘是 %llu\n", num, result);
} else {
printf("输入错误,请输入非负整数。\n");
}
return 0;
}
```
阅读全文
相关推荐















