高精度计算阶乘(摘抄版)

#include<stdio.h>
int main()
{
long n,m,i,j,b;
long a[100000];
while(scanf("%ld",&n)!=EOF)
{

a[0]=1;
m=1;
for(i=1;i<=n;i++)
{
b=0;
for(j=0;j<m;j++)
{
a[j]=a[j]*i+b;
b=a[j]/10000;
a[j]=a[j]%10000;
}
if(b>0)
{
a[m]=b;
m++;
}
}

printf("%ld",a[m-1]);
for(i=m-2;i>=0;i--)
{
printf("%4.4ld",a[i]);
}
printf("\n");
}
return 0;
}

原文地址:https://www.cnblogs.com/huzhenbo113/p/3003047.html