1 #include<bits/stdc++.h> 2 using namespace std; 3 int a[1000],b[1000]; 4 void cheng(int *a,int x){ 5 int jw=0; 6 for(int i=1;i<1000;i++){ 7 a[i]=a[i]*x+jw; 8 jw=a[i]/10; 9 a[i]%=10; 10 } 11 } 12 void jia(int *a,int *b){ 13 int jw=0; 14 for(int i=1;i<1000;i++){ 15 b[i]=b[i]+a[i]+jw; 16 jw=b[i]/10; 17 b[i]%=10; 18 } 19 } 20 int main(){ 21 int N; 22 cin>>N; 23 memset(a,0,sizeof(a)); 24 a[1]=1; 25 memset(b,0,sizeof(b)); 26 for(int i=1;i<=N;i++){ 27 cheng(a,i); 28 jia(a,b); 29 } 30 bool flag=0; 31 for(int i=1000;i>0;i--){ 32 if(b[i]) flag=1; 33 if(flag) cout<<b[i]; 34 } 35 }
高精度,使用数组一位一位地乘和加