1 题目
6-10 阶乘计算升级版 (20 分)
本题要求实现一个打印非负整数阶乘的函数。
函数接口定义:
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;
}
2 程序
/*
digit表示前面相乘项的位数,temp表示“前面结果的某一位”与i相乘后的临时结果,i表示阶乘数
carry表示进位,a[200000]表示输出的数组,由于没有任何数据类型能存放1000的阶乘,因此使用数组进行输出
原理:利用某一位与i进行相乘,将最低位赋值a的最低位,再将进位carry赋值高位
例子:如8!=5040*8,其中5040=7!,i代表8,a[j]代表5040中的某一位,carry代表进位,digit为4
*/
void Print_Factorial ( const int N ){
int i,j,digit=1,temp=0,car