洛谷p1009 阶乘之和

 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 }

高精度,使用数组一位一位地乘和加

猜你喜欢

转载自www.cnblogs.com/mirager/p/13366636.html
今日推荐