//假设得到的值不会超过100位
void factorial(int buf[100],int num)
{
buf[0]=buf[1]=1;
for(int currentN=1;currentN<=num;currentN++)
{
int index = 0;
for(index=1;index<100;index++)
{
if (buf[index] !=0)
{
buf[index]=buf[index]*currentN;
}
}
for(index=1;index<100;index++)
{
if(buf[index]>=10)
{
buf[index+1]=buf[index+1]+buf[index]/10,
buf[index]=buf[index]%10;
}
}
}
int k=100 -1;
while (buf[k]==0)
{
k--;
}
printf("%d的阶乘=", num);
for(int i=k; i>0; i--)
{
printf("%d",buf[i]);
}
printf("/n");
}