无负数高精度加法(模板)

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int a[506],b[506],lena,lenb,js;string a1,b2;
 4 int main()
 5 {
 6     cin>>a1>>b2;
 7     lena=a1.length();
 8     lenb=b2.length();
 9     for(int i=0;i<=lena-1;i++){
10         a[lena-i-1]=a1[i]-'0';
11     }
12     for(int i=0;i<=lenb-1;i++){
13         b[lenb-i-1]=b2[i]-'0';
14     }
15     if(lena>=lenb){
16         for(int i=0;i<=lena-1;i++){
17             int ss=a[i];
18             a[i]=(b[i]+js+a[i])%10;
19             js=(ss+b[i]+js)/10;
20         }
21         if(js) a[lena]=js;
22         else lena--;
23         for(int i=lena;i>=0;i--) cout<<a[i];
24         return 0;
25     }
26     else{
27         for(int i=0;i<=lenb-1;i++){
28             int ss=b[i];
29             b[i]=(b[i]+js+a[i])%10;
30             js=(ss+a[i]+js)/10;
31         }
32         if(js) b[lenb]=js;
33         else lenb--;
34         for(int i=lenb;i>=0;i--) cout<<b[i];
35         return 0;
36     }
37     return 0;
38 }
原文地址:https://www.cnblogs.com/lipeiyi520/p/10421977.html