#include <iostream>
#include <cstring>
using namespace std;
void reverse(char *arr, int size) {
char tmp;
for (int n = 0; n < size / 2; n++) {
tmp = arr[n];
arr[n] = arr[size - n - 1];
arr[size - n - 1] = tmp;
}
}
void add(char *num1, int num1Size, char *num2, int num2Size) {
int carry = 0;
int m, n;
for (n = 0; n < num2Size; n++) {
int n1 = num1[n] - '0';
int n2 = num2[n] - '0';
int n3 = n1 + n2 + carry;
carry = n3 / 10;
num1[n] = n3 % 10 + '0';
}
if (carry > 0) {
for (m = n; m < num1Size; m++) {
int tmp = num1[m] - '0' + carry;
num1[m] = tmp % 10;
carry = tmp / 10;
}
}
if (carry > 0) {
num1[m] = '1';
num1[m + 1] = '\0';
}
}
int main() {
char a[501], b[501], c[502];
cin >> a;
cin >> b;
int sizeA = strlen(a);
int sizeB = strlen(b);
reverse(a, sizeA);
reverse(b, sizeB);
//cout << "sizeA = " << sizeA << ", sizeB = " << sizeB << endl;
if (sizeA > sizeB) {
strcpy(c, a);
//cout << c << endl;
add(c, sizeA, b, sizeB);
} else {
strcpy(c, b);
add(c, sizeB, a, sizeA);
}
reverse(c, strlen(c));
cout << c;
return 0;
}
求助