1 #include<cstdio>
2 #include<cstdlib>
3 #include<cstring>
4
5 using namespace std;
6
7 char s1[100],s2[100];
8
9 int x[100],y[100],z[100];
10
11 int max(int a,int b)
12 {
13 if (a>b) return a;
14 else return b;
15 }
16
17 int main()
18 {
19 scanf("%s%s",s1+1,s2+1);//读入两个字符串 +1是把它们读到1的位置 就不用从0开始了
20 int l1=strlen(s1+1);//第一个数的位数
21 int l2=strlen(s2+1);//第二个数的位数
22 int l=max(l1,l2);//较长的那个位数
23 for (int a=1;a<=l1;a++)
24 x[l1-a+1]=s1[a]-'0';//把第一个字符串翻转之后存到x中去
25 for (int a=1;a<=l2;a++)
26 y[l2-a+1]=s2[a]-'0';//把第二个字符串翻转之后存到y中去
27 for (int a=1;a<=l;a++)
28 z[a]=x[a]+y[a];//把它们加起来后存到z里面去
29 int b=0;//b代表从低位进了多大的数上来
30 for (int a=1;a<=l;a++)
31 {
32 z[a]=z[a]+b;//进上来的数
33 b=z[a]/10;//更新b
34 z[a]=z[a] % 10;//只保留最低位
35 }
36 if (b!=0)//还有进位
37 {
38 l++;//位数+1
39 z[l]=b;//更新最高位
40 }
41 for (int a=l;a>=1;a--)
42 printf("%d",z[a]);
43 printf("\n");//输出
44
45 return 0;
46 }
1 #include<cstdio>
2 #include<cstdlib>
3 #include<cstring>
4
5 using namespace std;
6
7 char s1[100],s2[100];
8
9 int x[100],y[100],z[100];
10
11 int max(int a,int b)
12 {
13 if (a>b) return a;
14 else return b;
15 }
16
17 int main()
18 {
19 scanf("%s%s",s1+1,s2+1);//读入两个字符串 +1是把它们读到1的位置 就不用从0开始了
20 int l1=strlen(s1+1);//第一个数的位数
21 int l2=strlen(s2+1);//第二个数的位数
22 int l=max(l1,l2);//较长的那个位数
23 for (int a=1;a<=l1;a++)
24 x[l1-a+1]=s1[a]-'0';//把第一个字符串翻转之后存到x中去
25 for (int a=1;a<=l2;a++)
26 y[l2-a+1]=s2[a]-'0';//把第一个字符串翻转之后存到y中去
27 for (int a=1;a<=l;a++)
28 z[a]=x[a]+y[a];//把它们加起来后存到z里面去
29 int b=0;//b代表从低位进了多大的数上来
30 for (int a=1;a<=l;a++)
31 {
32 z[a]=z[a]+b;//进上来的数
33 b=z[a]/10;//更新b
34 z[a]=z[a] % 10;//只保留最低位
35 }
36 if (b!=0)//还有进位
37 {
38 l++;//位数+1
39 z[l]=b;//更新最高位
40 }
41 for (int a=l;a>=1;a--)
42 printf("%d",z[a]);
43 printf("\n");//输出
44
45 return 0;
46 }