1. 程式人生 > >無負數高精度加法(模板)

無負數高精度加法(模板)

高精度 bits urn ace turn -- length mes span

 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 }

無負數高精度加法(模板)