C语言编写:本题要求实现一个打印非负整数阶乘的函数。 函数接口定义: void Print_Factorial ( const int N ); 其中N是用户传入的参数,其值不超过1000。如果N是...
时间: 2024-02-05 08:10:55 浏览: 100
以下是C语言实现的代码:
```c
#include <stdio.h>
void Print_Factorial(const int N) {
int factorial[3000] = {0};
int len = 1; // 阶乘数的位数
factorial[0] = 1; // 初始值为1
for (int i = 2; i <= N; i++) {
int carry = 0; // 进位
for (int j = 0; j < len; j++) {
int product = factorial[j] * i + carry;
factorial[j] = product % 10; // 更新当前位
carry = product / 10; // 计算进位
}
while (carry > 0) { // 处理最高位的进位
factorial[len++] = carry % 10;
carry /= 10;
}
}
// 从高位到低位输出阶乘数
for (int i = len - 1; i >= 0; i--) {
printf("%d", factorial[i]);
}
printf("\n");
}
int main() {
int N;
scanf("%d", &N);
Print_Factorial(N);
return 0;
}
```
该函数使用数组存储阶乘数,每次乘以一个整数时,从低位到高位逐个计算,并处理进位,最后输出阶乘数时从高位到低位输出。注意要处理阶乘数的位数,以及最高位的进位。
阅读全文
相关推荐














