用c语言定义函数计算N的阶乘, 主函数输入N,调用函数输出结果
时间: 2024-05-15 20:12:09 浏览: 91
以下是用 C 语言定义函数计算 N 的阶乘的代码:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
int main() {
int n;
printf("请输入一个整数:");
scanf("%d", &n);
printf("%d 的阶乘是 %d\n", n, factorial(n));
return 0;
}
```
这个程序中,我们定义了一个名为 `factorial` 的函数来计算 N 的阶乘。该函数使用递归的方式,当 N 为 0 时返回 1,否则返回 N 乘以 N-1 的阶乘。主函数中,我们首先输入一个整数 N,然后调用 `factorial` 函数来计算 N 的阶乘,最后输出结果。
相关问题
用c语言编写函数求n的阶乘。主函数通过调用函数实现sum=1!+2!+3!+……n!(n由键盘输入)
以下是C语言编写函数求n的阶乘的代码,以及通过调用函数实现sum=1!+2!+3!+……n!(n由键盘输入)的代码:
```c
#include <stdio.h>
double fact(int x) {
double res = 1;
for (int i = 1; i <= x; i++) {
res *= i;
}
return res;
}
double fun(int n) {
double res = 0;
for (int i = 1; i <= n; i++) {
res += fact(i);
}
return res;
}
int main() {
int n;
scanf("%d", &n);
double sum = fun(n);
printf("%.0lf", sum);
return 0;
}
```
输入一个非负整数n的值(n不超过20),编程输出n!(n的阶乘)。程序中的整数请定义成long long型。请使用c语言定义递归函数计算阶乘。
好的,我明白了。以下是C语言的递归函数计算n!的程序:
```c
#include <stdio.h>
long long 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! = %lld\n", n, factorial(n));
return 0;
}
```
在这个程序中,我们定义了一个名为`factorial`的递归函数,用来计算n!。如果n等于0,则直接返回1;否则,函数会调用自身来计算(n-1)!,然后将n乘以(n-1)!得到n!。在主函数中,我们输入一个非负整数n,并调用`factorial`函数来计算n!,最后输出结果。需要注意的是,由于n!可能非常大,因此我们将结果定义为long long型。
阅读全文