『水一发』『只能算正数的高精度加法』『Cpp』

 1 #define Maxlongint 2147483647
 2 #include<iostream>
 3 #include<string>
 4 #include<cstring>
 5 using namespace std;
 6 string a,b;
 7 int DC,la,lb;
 8 int c[2555555];
 9 int Max(int x,int y)
10 {
11     if (x>y) return x;
12     else return y;
13 }
14 int Min(int x,int y)
15 {
16     if (x<y) return x;
17     else return y;
18 }
19 void Plus(string a, string b)
20   {
21     int Tt,i;
22     if (la>lb)
23       {
24         for (i=1;i<=la-lb;++i)
25           b='0'+b;
26         lb=la;
27       }
28     else
29       {
30         for (i=1;i<=lb-la;++i)
31           a='0'+a;
32         la=lb;
33       }
34     //cout<<endl;
35     for(i=0;i<=la;++i)
36     {
37       c[i]=a[i]+b[i]-96;
38       //cout<<i<<'*'<<c[i]<<'='<<a[i]<<'+'<<b[i]<<endl;
39     }
40     for(i=la;i>=0;--i)
41       if ((c[i]+DC)>=10)
42         {
43           Tt=(c[i]+DC) % 10;
44           DC=(c[i]+DC) / 10;
45           c[i]=Tt;
46         }
47       else
48         {
49           c[i]=c[i]+DC;
50           DC=0;
51         }
52     c[2555554]=-1;
53     if (DC>0) c[2555554]=DC;
54     if (c[2555554]!=-1) cout<<c[2555554];
55     for (i=0;i<=la;++i)
56       if (c[i]!=-1) cout<<c[i]; 
57     cout<<endl;
58   }
59 int main()
60 {    
61       cin>>a;
62       cin>>b;
63       la=a.size()-1;
64       lb=b.size()-1;
65       for (int i=0;i<=Max(la,lb);++i) 
66         c[i]=' ';
67       DC=0;
68       Plus(a,b);
69       return 0;
70 }

23333333333333

写的太难看没脸见人了、、、、、、、、、、、、、、、、、、、、

总算打破了STRing壁垒!!!!!!

posted @ 2015-09-27 22:23  Iris.Catch-22.S、`  阅读(186)  评论(0编辑  收藏  举报