转载请注明出处:http://www.cnblogs.com/zhishoumuguinian/p/8428283.html
样例输入
22222222222222222222
33333333333333333333
样例输出
55555555555555555555
思路:正常的大数加法我就不说啥了,这个题给我坑的。
这个题需要注意的是当输入为
000000
000000
输出是
0
输入为
00001
00001
输出是
2
其余的就是大数加法了
1 #include <iostream>
2 #include<string>
3
4 using namespace std;
5
6 int main()
7 {
8 string s1, s2;
9 int a[250]={0}, b[250]={0};
10 int i, j;
11 cin>>s1>>s2;
12 a[0]=s1.length();
13 //cout<<a[0]<<endl;
14 b[0]=s2.length();
15 //cout<<b[0]<<endl;
16 for(i=1; i<=a[0]; i++)
17 {
18 a[i]=s1[a[0]-i]-'0';
19 }
20 for(i=1; i<=b[0]; i++)
21 {
22 b[i]=s2[b[0]-i]-'0';
23 }
24 int k=max(a[0],b[0]);
25 for(i=1; i<=k; i++)
26 {
27 a[i+1]+=(a[i]+b[i])/10;
28 a[i]=(a[i]+b[i])%10;
29 }
30 if(a[k+1]>0) a[0]=k+1;
31 else a[0]=k;//前边是正常的大数加法
32 while(a[a[0]]==0&&a[0]>0)//除去多余的0
33 {
34 a[0]--;
35 }
36 if(a[0]==0)//如果把零都除没了,那就是0了
37 cout<<0;
38 else
39 for(j=a[0]; j>0; j--)
40 {
41 cout<<a[j];
42 }
43 }