普通的高精度乘法;
我就不多费口舌了;
#include<cstdio>
int f[60001];
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
f[1]=1;int l=1;
for(int i=2;i<=n;i++)
{
int t=0;
for(int j=1;j<=l;j++)
{
t+=f[j]*i;
f[j]=t%1000;
t/=1000;
}
while(t>0)
{
f[++l]=t%1000;
t/=1000;
}
}
int p;
printf("%d",f[l]);
for(int i=l-1;i;i--)
{
p=100;
while(p>0)
{
if(f[i]/p>0){printf("%d",f[i]);break;}
else printf("0");
p/=10;
}
}
printf("\n");
}
return 0;
}