高精度除法
#include<iostream> #include<vector> using namespace std; int main(){ vector<int> a(10,0),c(10,0); a[0]=1; int n; cin>>n; // for(int i=m.size()-1;i>=0;i--){ // a.push_back(m[i]-'0'); // } // for(int i=n.size()-1;i>=0;i--){ // b.push_back(n[i]-'0'); // } int sum=0; int l; for(int j=1;j<=n;j++){ sum=0; for(int i=0;i<a.size()||sum;i++){ c[i]+=a[i]*j; sum+=c[i]; c[i]=sum%10; sum=sum/10; } while(c.size()>1&&c.back()==0){ c.pop_back(); } for(int i=0;i<a.size();i++){ a[i]=c[i]; c[i]=0; } for(int i=0;i<a.size();i++){ l=a[i]; a[i]=a[a.size()-1-i]; a[a.size()-1-i]=l; } } for(int i=c.size()-1;i>=0;i--){ cout<<a[i]; } return 0; }