c语言编写求阶乘代码
时间: 2025-06-16 10:39:32 浏览: 15
以下是使用C语言实现阶乘计算的两种常见方式:循环法和递归法。
### 循环法实现阶乘计算
通过循环逐步累积乘积的方式可以高效地完成阶乘计算。这种方法适用于大多数情况下的非负整数阶乘需求[^2]。
```c
#include <stdio.h>
// 主函数
int main() {
unsigned int number;
unsigned long long result = 1;
// 用户输入提示
printf("请输入一个非负整数来计算它的阶乘: ");
scanf("%u", &number);
// 如果输入为0,则直接返回1作为结果
if (number == 0) {
result = 1;
} else {
for (unsigned int i = 1; i <= number; ++i) {
result *= i; // 累计乘积
}
}
// 输出最终结果
printf("%u 的阶乘是: %llu\n", number, result);
return 0;
}
```
### 递归法实现阶乘计算
递归是一种更简洁但可能消耗更多栈空间的方法,适合理解阶乘的概念以及学习递归机制[^4]。
```c
#include <stdio.h>
// 定义递归函数用于计算阶乘
unsigned long long factorial(unsigned int n) {
if (n == 0 || n == 1) { // 基础情形
return 1;
}
return n * factorial(n - 1); // 递归调用
}
// 主函数
int main() {
unsigned int number;
// 获取用户输入
printf("请输入一个非负整数来计算它的阶乘: ");
scanf("%u", &number);
// 调用递归函数并打印结果
unsigned long long result = factorial(number);
printf("%u 的阶乘是: %llu\n", number, result);
return 0;
}
```
以上两段代码分别展示了如何利用 **循环** 和 **递归** 来解决阶乘问题。对于较大的数值,建议优先考虑循环方法以避免潜在的堆栈溢出风险[^3]。
阅读全文
相关推荐


















