#define N 5000
int main(void)
{
//如何计算一个任意数字的阶乘呢?
int n;
scanf("%d",&n);
//每一次都是一个数字去乘以乘积的每一位,得到的进位如何处理呢?像一位一样往上进
int i,j,up;
int array[N]={1};//定义一个int型的数组,一个元素就是一位数据
for(i=2;i<=n;i++)
{
for(j=0,up=0;j<N;j++)
{
array[j]=array[j]*i+up;
up = array[j]/10;
array[j] = array[j]%10;
}
}
for(i=N-1;array[i]==0;i--);
for(;i>=0;i--)
{
printf("%d",array[i]);
}
printf("\n");
}