C语言编程【问题描述】3.2.1 输入一个小于等于10的数n,求n!。 【样例输入】Enter a number:5 【样例输出】5!=120 【样例说明】本题输出结束后没有换行符。
时间: 2024-10-06 07:05:31 浏览: 25
在C语言编程中,计算阶乘(n!)是一个常见的数学运算问题,特别是涉及递归的情况。阶乘表示的是所有小于及等于该数的正整数相乘的结果。下面是一个简单的程序示例,用于接收用户输入的n,并计算其阶乘:
```c
#include <stdio.h>
// 计算阶乘的递归函数
unsigned long long factorial(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
int main() {
int n;
printf("Enter a number: ");
scanf("%d", &n); // 获取用户输入
if (n > 10) {
printf("Error: Number must be less than or equal to 10.\n");
return 1; // 如果输入超出范围,退出并显示错误
} else {
unsigned long long result = factorial(n);
printf("%d! =", n);
printf("%llu\n", result); // 输出结果,记得加换行符
}
return 0;
}
```
在这个程序中,`factorial()` 函数通过递归的方式计算阶乘,然后在`main()`函数中获取用户的输入,检查是否符合要求,最后输出结果。
**相关问题--:**
1. 这段代码如何处理输入验证?
2. 非递归方式如何实现这个功能?
3. 使用递归计算阶乘可能导致什么问题?
阅读全文