/*编写一个程序,求100以内的数的阶乘。结果数要求用链表或数组来存储输出运算的结果,为便于观察结果,每输出四位中间插入空格,格式如下(例如,n=12):
12!= 4790 0160 0
*/
#include "stdio.h"
main()
{int a[200]={0};
int b[200]={0};
int c[200]={0};
int i,j,k,x;
printf("\ninput number:");
scanf("%d",&x);
if(x>=100) printf("the mumber tu large!");
else
{a[199]=x%10;
a[198]=x/10;
for(i=x-1;i>0;i--)
{for(j=199;j>0;j--)
{b[j]=a[j]*(i%10);
c[j-1]=a[j]*(i/10);
}
for(j=199;j>0;j--)
{a[j]=b[j]+c[j];
b[j]=0;c[j]=0;
}
for(j=199;j>0;j--)
if(a[j]>9)
{a[j-1]=a[j-1]+a[j]/10;
a[j]=a[j]%10;
}
}
}
for(i=0,j=0,k=0;i<200;i++)
if(a[i]!=0||j!=0)
{printf("%d",a[i]);
j=1;
k++;
if(k%4==0)
printf(" ");
}
}