c语言用递归方法求n!
时间: 2023-06-20 12:08:11 浏览: 108
以下是使用递归方法求n!的C语言代码:
```c
#include <stdio.h>
int factorial(int n) {
if(n == 0) { // 0! = 1
return 1;
} else {
return n * factorial(n-1); // n! = n * (n-1)!
}
}
int main() {
int n;
printf("Enter a positive integer: ");
scanf("%d", &n);
if(n < 0) {
printf("Error: Invalid input!\n");
} else {
printf("%d! = %d\n", n, factorial(n));
}
return 0;
}
```
在这个代码中,`factorial()`函数使用递归方法计算n!。如果n为0,则返回1,否则返回n乘以(n-1)!。
在主函数中,我们从用户读取一个正整数n,如果n小于0,则输出错误信息。否则,我们调用`factorial()`函数计算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!,然后调用该函数计算5!+7!+9!的值。
可以回答这个问题。C语言中可以使用递归函数来求n!,代码如下:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n1 = 5, n2 = 7, n3 = 9;
printf("%d! = %d\n", n1, factorial(n1));
printf("%d! = %d\n", n2, factorial(n2));
printf("%d! = %d\n", n3, factorial(n3));
return 0;
}
```
输出结果为:
```
5! = 120
7! = 5040
9! = 362880
```
阅读全文