#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
string addBigNumbers(string a, string b) {
// 确保 a 是较长的字符串
if (a.length() < b.length()) {
swap(a, b);
}
string result = "";
int carry = 0;
// 反转方便从低位开始加
reverse(a.begin(), a.end());
reverse(b.begin(), b.end());
for (size_t i = 0; i < a.length(); ++i) {
int digitA = a[i] - '0';
int digitB = (i < b.length()) ? b[i] - '0' : 0;
int sum = digitA + digitB + carry;
result += (sum % 10) + '0';
carry = sum / 10;
}
if (carry) {
result += carry + '0';
}
// 结果反转回正常顺序
reverse(result.begin(), result.end());
return result;
}
int main() {
string num1, num2;
cout << "请输入两个大整数:" << endl;
cin >> num1 >> num2;
string sum = addBigNumbers(num1, num2);
cout << "和为:" << sum << endl;
return 0;
}