本题要求实现一个打印非负整数阶乘的函数。
函数接口定义:
void Print_Factorial ( const int N );
其中N是用户传入的参数,其值不超过1000。如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalid input”。
裁判测试程序样例:
#include <stdio.h>
void Print_Factorial ( const int N );
int main()
{
int N;
scanf("%d", &N);
Print_Factorial(N);
return 0;
}
/* 你的代码将被嵌在这里 */
输入样例:
15
结尾无空行
输出样例:
1307674368000
结尾无空行
大数运算要用到数组
我的代码:
void Print_Factorial ( const int N ) {
int A[5000];
int n, i, j, temp, jw, len;
//temp做位数与值乘,jw为进位值
//len为整个数第一个值在数组里的下标
A[0] = 1;
len = 0;
for (i = 1; i <= N; i++) { //外循环i表示乘到的数值
jw = 0;
for (j = 0; j <= len; j++) { //里循环表示将前面的总乘积与i相乘
temp = A[j] * i + jw;
A[j] = temp %

这篇博客介绍如何用C语言实现一个计算不超过1000的非负整数阶乘的函数,要求在一行内输出结果。博主强调了大数运算中可能需要使用数组来处理,并给出了裁判测试程序和输入输出样例。

1万+

被折叠的 条评论
为什么被折叠?



