//N! #include#include int arr[8001],k; int main() { int i,j,n,jinwei; int num; while(scanf("%d",&n)!=EOF) { memset(arr,0,sizeof(arr)); arr[0]=1; k=0; // 从1到n循环 for(j=1;j<=n;++j) { jinwei=0; for(i=0;i<=k;++i) { num=arr[i]*j+jinwei; if(num>99999) jinwei=num/100000; else jinwei=0; arr[i]=num%100000; // 如果到了最高位,仍有进位 if(i==k && jinwei!=0) { ++k; arr[k]=jinwei; break; } } } // 注意格式,第一个输出的不需要补0,后面需要补0 for(i=k;i>=0;--i) if(i==k) printf("%d",arr[i]); else printf("%05d",arr[i]); printf("\n"); } return 0; }