void Print_Factorial ( const int N )
{
if(N<0){
printf("Invalid input");
return;
}
int n=N;
int a[10000]={};
a[0]=1; //0和1的阶乘都是1,同时又是用该个位去×,所以初始化为1;
int i,j;
int len=0;//当前数组所占的最大下标
int temp=0; //进位
for( i=2;i<=n;i++)
{
for(j=0;j<=len;j++)
{
temp=a[j]*i+temp;
a[j]=temp%10;
temp/=10;
}
while(temp) //如果有进位
{
a[j++]=temp%10;
temp/=10;
len++;
}
}
for(;len>=0;len--)
{
printf("%d",a[len]);
}
}
6-10 阶乘计算升级版
于 2024-05-16 12:37:10 首次发布