模板:求n累加和

http://lfyzit.com/problem/43

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 using namespace std;
 5 int A[20], B[20], C[20], D[20]; 
 6 void zhuanhua(int num, int A[]){
 7     int js=0;
 8     while(num/10){
 9         A[++js]=num%10;
10         num/=10;
11     }
12     while(num/10==0 && num>0){
13         A[++js]=num;
14         num/=10;
15     }
16     A[0]=js;
17     return;
18 }
19 void jiafa(int A[], int C[]){       
20     int i=1, jw=0;                             
21     while(i<=A[0] || i<=C[0]){
22         C[i]=C[i]+A[i]+jw;
23         jw=C[i]/10;
24         C[i]%=10;
25         i++;
26     }
27     C[i]=jw;                               
28     C[0]=C[i] ? i : i-1;                   
29     return;
30 }
31 void chengfa(int A[], int B[], int C[]){        
32     int i,j;
33     for(i=1; i<=B[0]; i++){                     
34         int jw;                                 
35         for(j=1, jw=0; j<=A[0]; j++){           
36             C[i+j-1]=C[i+j-1]+A[j]*B[i]+jw;     
37             jw=C[i+j-1]/10;                     
38             C[i+j-1]%=10;                       
39         }
40         C[i+A[0]]=jw;                           
41     }
42     int len=A[0]+B[0];                          
43     while(C[len]==0 && len>1)   len--;          
44     C[0]=len;
45     return;
46 }
47 int main(){
48     int n, cheng, m;
49     cin>>n;
50     m=n+1;
51     zhuanhua(m, A);
52     cheng=n/2;
53     zhuanhua(cheng, B);
54     chengfa(A, B, C);
55     if(n%2){
56         zhuanhua(cheng+1, D);
57         jiafa(D, C);
58     }
59     for(int j=C[0]; j>=1; j--){
60             cout<<C[j];
61     }
62     return 0;
63 }
"Hello World!"
原文地址:https://www.cnblogs.com/Aze-qwq/p/9337796.html