#include <iostream> using namespace std; void bigNumMul(int n){ int i,j,k,rear=1,m,count=0; long long result[512]={0},temp,d; k=n; while (k != 0){ k=k/10; count++; } d=0; result[1]=1; m=(n*count)/8 + 1; for(i=2;i<=n;i++){ for(j=1;j<=m;j++){ temp = result[j]*i + d; result[j] = temp % 100000000; d = temp / 100000000; // 不能用result[j] 已经改变值 } } for(i=m;i>=1;i--){ if(result[i] != 0){ rear = i; break; } } cout<<result[rear]; // 8位以下,不用补零。只用输出数组第一个数据 for(i=rear-1;i>=1;i--){ if(result[i]>9999999){ cout<<result[i]; continue; } if(result[i]>999999){ cout<<"0"<<result[i]; continue; } if(result[i]>99999){ cout<<"00"<<result[i]; continue; } if(result[i]>9999){ cout<<"000"<<result[i]; continue; } if(result[i]>999){ cout<<"0000"<<result[i]; continue; } if(result[i]>99){ cout<<"00000"<<result[i]; continue; } if(result[i]>9){ cout<<"000000"<<result[i]; continue; } cout<<"0000000"<<result[i]; } } int main(){ int n; while(cin>>n){ bigNumMul(n); cout<<endl; } return 0; }