#include
#include
using namespace std;
char a[100], b[100];
int A[100], B[100];
int c[101];
int main() {
cin >> a >> b;
int lena = strlen(a);
int lenb = strlen(b);
int len = max(lena, lenb);
int l = len - 1;
if (a[0] == 0 || b[0] == 0) {
cout << 0;
}
else {
for (int i = 0; i < len; i++) {
A[i] = a[len - 1 - i] - 48;
}
for (int i = 0; i < len; i++) {
B[i] = b[len - 1 - i] - 48;
}
for (int lenc = 0; lenc < len; lenc++) {
c[lenc] = A[lenc] + B[lenc];
}
if (c[l] >= 10) {
len++;
}
for (int lenc = 0; lenc < len; lenc++) {
c[lenc + 1] += c[lenc] / 10;
c[lenc] %= 10;
}
for (int i = len - 1; i >= 0; i--) {
cout << c[i];
}
}
}
#include<iostream>
#include<cstring>
using namespace std;
char a[100], b[100];
int A[100], B[100];
int c[101];
int main() {
cin >> a >> b;
int lena = strlen(a);
int lenb = strlen(b);
int len = max(lena, lenb);
int l = len - 1;
if (a[0] == 0 || b[0] == 0) {
cout << 0;
}
else {
//这里的问题,没有把位对齐,最终结果导致长的字符串的最高位和短的字符串中的最高位相减
//并且char类型数组中未赋值为int类型的0而不是char的'0',-48之后是-48而非期望的0
/*for (int i = 0; i < len; i++) {
A[i] = a[len - 1 - i] - 48;
}
for (int i = 0; i < len; i++) {
B[i] = b[len - 1 - i] - 48;
}*/
//正确处理,根据每个字符串的长度,从低位开始放到数字数组里面
for (int i = 0; i < lena; i++) {
A[i] = a[lena - 1 - i] - 48;
}
for (int i = 0; i < lenb; i++) {
B[i] = b[lenb - 1 - i] - 48;
}
for (int lenc = 0; lenc < len; lenc++) {
c[lenc] = A[lenc] + B[lenc];
}
if (c[l] >= 10) {
len++;
}
for (int lenc = 0; lenc < len; lenc++) {
c[lenc + 1] += c[lenc] / 10;
c[lenc] %= 10;
}
for (int i = len - 1; i >= 0; i--) {
cout << c[i];
}
}
}