请只使用迭代法实现阶乘
时间: 2024-09-25 12:03:22 浏览: 24
ASP.NET递归法求阶乘解决思路
当然,下面是使用迭代法(循环)直接计算阶乘的简单C语言代码示例:
```c
#include <stdio.h>
// 使用迭代法计算阶乘
unsigned long long iterative_factorial(int n) {
unsigned long long fact = 1; // 初始化阶乘为1,因为0! = 1
for (int i = 1; i <= n; i++) { // 从1到n遍历
fact *= i; // 每次将当前数乘以阶乘
}
return fact; // 返回最终的阶乘结果
}
int main() {
int num;
printf("请输入一个非负整数: ");
scanf("%d", &num);
if (num < 0) {
printf("抱歉,阶乘仅对非负整数有意义。\n");
} else {
unsigned long long result = iterative_factorial(num);
printf("输入的数字 %d 的阶乘是: %llu\n", num, result);
}
return 0;
}
```
这个函数通过一个`for`循环迭代地计算给定整数`n`的阶乘,并返回结果。注意,由于阶乘的结果会非常大,特别是当n较大时,我们使用`unsigned long long`数据类型来存储结果。
阅读全文