//该数组根据从左到右数组计算来看,应该从左到右计算,并根据商和余来将每一个储存的元素变为单个的
#include<stdio.h>
int main()
{
int a[10000]={0}, i, j;//为了防止溢出定义一个较大的数组
int b;//b作为传递到a[i-1]的数
int h=0;
a[9996]=1;
for(j=999;j>0;j--)
{
for(i=9999;i>=0;i--)
{
a[i]=a[i]*j;//进行阶乘计算
}
for(i=9999;i>=0;i--)
{
b=a[i]/10;
a[i]=a[i]%10;
a[i-1]=a[i-1]+b;
}
}
for(i=0;i<=9999;i++)
{
if(a[i]!=0)
{
h++;
}
if(h!=0)//为了使数组从第一个非零数开始输出
{
printf("%d",a[i]);
}
}
return 0;
}
**输出结果: