还是a+b

题目描述:

给定 2 个正整数 a, b,a 和 b 最多可能有 40 位,求出 a + b 的和。
输入描述:

两个正整数 a, b,a 和 b 最多可能有 40 位。一行表示一个数。
输出描述:

a + b 的和。
样例输入:

111111111111111111111111111111111111111

222222222222222222222222222222222222222
样例输出:

333333333333333333333333333333333333333

 1 #include<iostream>
 2 #include<cstring>
 3 using namespace std;
 4 int main(){
 5     char s1[200],s2[200];
 6     int a[200]={0},b[200]={0},l1,l2,c,k,i;
 7     gets(s1);
 8     gets(s2);
 9     l1=strlen(s1);
10     l2=strlen(s2);
11     if(l1<l2) k=l2;
12     else k=l1;c=k;
13     for(i=0;i<l1;k--,i++)
14     a[k]=s1[l1-1-i]-'0';
15     for(k=c,i=0;i<l2;k--,i++)
16     b[k]=s2[l2-1-i]-'0';
17     for(i=c;i>=0;i--){
18         a[i]+=b[i];
19         if(a[i]>=10){
20             a[i]=10;
21             a[i-1]++;
22         }
23     }
24     if(a[0]!=0){
25         for(i=0;i<=c;i++)
26         cout<<a[i];
27     }else{
28         for(i=1;i<=c;i++)
29         cout<<a[i];
30     }
31 }

 

posted @ 2019-09-06 21:01  盘古递斧我开天  阅读(615)  评论(0编辑  收藏  举报