c语言输入一个整数m,计算并求出阶乘的值的代码
时间: 2024-10-28 09:15:47 浏览: 9
c语言求阶乘精确值示例
5星 · 资源好评率100%
在C语言中,计算给定整数`m`的阶乘可以使用递归或循环的方式。以下是两种常见的实现方法:
**使用递归:**
```c
#include <stdio.h>
// 计算阶乘的递归函数
unsigned long long factorial(int m) {
if (m == 0 || m == 1) // 阶乘的基本情况,0和1的阶乘都是1
return 1;
else
return m * factorial(m - 1); // 递归调用自身
}
int main() {
int m;
printf("请输入一个非负整数:");
scanf("%d", &m);
if (m >= 0)
printf("阶乘结果为:%llu\n", factorial(m));
else
printf("错误:请输入非负整数。\n");
return 0;
}
```
**使用循环:**
```c
#include <stdio.h>
#include <limits.h> // 引入ULLONG_MAX获取最大无符号长整型
unsigned long long factorial(int m) {
unsigned long long result = 1; // 初始化阶乘为1
for (int i = 1; i <= m; ++i) {
result *= i; // 每次循环将当前数乘到结果上
}
return result;
}
int main() {
int m;
printf("请输入一个非负整数:");
scanf("%d", &m);
if (m >= 0)
printf("阶乘结果为:%llu\n", factorial(m));
else
printf("错误:请输入非负整数。\n");
return 0;
}
```
阅读全文