用高精度了呀
using namespace std;
int a[1001],b[1001];
int lena()
{
for(int i=1000;i>=2;i--)
{
if(a[i]>0)return i;
}
return 1;
}
int lenb()
{
for(int i=1000;i>=2;i--)
{
if(b[i]>0)return i;
}
return 1;
}
int main()
{
int n;
scanf("%d",&n);
b[1]=1;
for(int i=1;i<=n;i++)
{
for(int j=0;j<lenb();j++)
{
b[j+1]*=i;
b[j+1]+=b[j]/10;
b[j]%=10;
}
for(int j=1;j<=lenb();j++)
{
a[j]+=b[j];
a[j+1]+=a[j]/10;
a[j]%=10;
}
}
for(int i=lena();i>=1;i--)
{
printf("%d",a[i]);
}
return 0;
}