用c语言 7-4 阶乘 读入n,求阶乘。 输入格式: 输入整数n。 输出格式: 每一组输出阶乘结果。 输入样例1: 5 输出样例1: 120 输入样例2: -1 输出样例2: 0
时间: 2024-10-29 12:14:00 浏览: 70
在C语言中计算阶乘通常会涉及到递归函数,因为阶乘的本质就是连乘。对于正整数n,它的阶乘(n!)表示的是从1到n的所有整数的乘积。如果输入是负数或者非整数,则返回0(阶乘只对自然数有意义)。
下面是一个简单的C程序,用于计算并输出给定整数n的阶乘:
```c
#include <stdio.h>
// 计算阶乘的递归函数
long long factorial(int n) {
if (n == 0 || n == 1) { // 基本情况,0和1的阶乘都是1
return 1;
} else {
return n * factorial(n - 1); // 递归调用,计算n-1的阶乘然后乘以n
}
}
int main() {
int n;
printf("请输入一个整数:");
scanf("%d", &n);
// 检查输入是否合法
if (n >= 0) {
long long result = factorial(n);
printf("阶乘结果是:%lld\n", result);
} else {
printf("输入错误,阶乘只对非负整数有效。\n");
}
return 0;
}
```
**相关问题--:**
1. C语言中如何处理阶乘计算的大数值溢出问题?
2. 这段代码中为什么要检查输入是否是非负整数?
3. 可以用迭代而不是递归来实现阶乘吗?如果可以,你能给出相应的代码示例吗?
阅读全文