#include <iostream> #include <vector> using namespace std; const int N=1010; vector<int> f[N];//存储每个数的阶乘 vector<int> mul(vector<int> &A,int b){ int t=0; vector<int> C; for(int i=0;i<A.size();i++){ t+=A[i]*b; C.push_back(t%10);//存储:个十百千...(位) t/=10; } while(t){//一位一位存储,防止下一个数使用时因为两数乘积过大而溢出 C.push_back(t%10); t/=10; } A=C; return C; } int main() { f[0]={1}; vector<int> A={1}; for(int i=1;i<=1000;i++){//预处理 f[i]=mul(A,i); } int n; while(cin>>n){ for(int i=f[n].size()-1;i>=0;i--) cout<<f[n][i]; cout<<endl; } return 0; } // 64 位输出请用 printf("%lld")