c语言用递归方法求n!。
时间: 2023-12-03 18:44:03 浏览: 125
以下是用递归方法实现求n!的C语言代码:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 0) { // 0的阶乘为1
return 1;
} else {
return n * factorial(n-1); // 递归调用
}
}
int main() {
int n;
printf("请输入一个非负整数:");
scanf("%d", &n);
printf("%d! = %d", n, factorial(n));
return 0;
}
```
当输入一个非负整数n,程序会调用factorial函数来求n!的值。如果n为0,那么n!的值就是1。否则,程序会递归调用factorial函数来求(n-1)!的值,并将n乘以(n-1)!的结果返回。因此,程序最终会得到n!的值。
相关问题
c语言的递归函数求n!怎么写?
以下是一个求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);
printf("%d! = %d\n", n, factorial(n));
return 0;
}
```
函数factorial中,当n等于0时,直接返回1;否则,递归调用自身求解n-1的阶乘,然后将n与其结果相乘。在主函数中,输入正整数n,调用函数factorial求解n的阶乘并输出结果。
c语言通过递归调用求n!的值.
在C语言中,使用递归调用可以方便地计算阶乘(n!)。阶乘是一个数的所有小于及等于它的正整数的积,对于非负整数n,其阶乘记作n!。递归算法的基本思路是将大问题分解成更小的问题,直到达到基本情况,如0的阶乘为1。
下面是一个简单的递归函数来计算n的阶乘:
```c
#include <stdio.h>
unsigned long long factorial(int n) {
// 基本情况:0和1的阶乘都是1
if (n == 0 || n == 1)
return 1;
else
// 递归调用:n的阶乘 = n * (n-1)!
return n * factorial(n - 1);
}
int main() {
int num;
printf("请输入一个非负整数:");
scanf("%d", &num);
// 防止溢出,因为阶乘增长非常快,特别对大的n来说
unsigned long long result = factorial(num);
printf("The factorial of %d is %llu\n", num, result);
return 0;
}
```
阅读全文
相关推荐














