n为调用函数传入的要计算阶乘的整数参数。 如果n<0,则输出:Negative argument to fact!,并且用exit(0)返退出程序。 否则按递归方法计算其阶乘,并将结果返回。输入样例: 在这里给出一组输入。例如: 10 输出样例: 在这里给出相应的输出。例如: 10!=3628800 用c语言编写
时间: 2024-02-15 12:03:51 浏览: 67
以下是使用递归方法计算阶乘的程序:
```c
#include <stdio.h>
#include <stdlib.h>
int fact(int n);
int main() {
int n, result;
printf("请输入一个整数:");
scanf("%d", &n);
if (n < 0) {
printf("Negative argument to fact!\n");
exit(0);
}
result = fact(n);
printf("%d!=%d\n", n, result);
return 0;
}
int fact(int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * fact(n - 1);
}
}
```
首先,我们定义了一个函数 `fact`,用于计算阶乘。如果传入的参数 `n` 等于 0 或 1,那么阶乘结果为 1;否则,我们使用递归的方法计算 n 的阶乘,即 n! = n * (n-1) * (n-2) * ... * 1。
在 `main` 函数中,我们从标准输入中读取一个整数 `n`,如果 `n` 小于 0,则输出错误信息并退出程序;否则,我们调用 `fact` 函数计算 `n` 的阶乘,并将结果输出。
需要注意的是,由于阶乘的结果可能很大,超过了整型变量的表示范围,因此实际开发中需要使用更高精度的数据类型或者字符串来保存结果。
阅读全文