我:什么?int爆了!
看来得用高精
#include <iostream>
#include <string>
#include <algorithm>
std::string highAccuracyAddition(const std::string &a, const std::string &b) {
std::string result;
int carry = 0;
int temp;
for (size_t i = 0; i < a.length() || i < b.length(); ++i) {
temp = carry;
if (i < a.length()) temp += a[a.length() - 1 - i] - '0';
if (i < b.length()) temp += b[b.length() - 1 - i] - '0';
carry = temp / 10;
result += (temp % 10) + '0';
}
if (carry > 0) result += carry + '0';
std::reverse(result.begin(), result.end());
return result;
}
int main() {
std::string num1, num2;
std::cin >> num1 >> num2;
std::reverse(num1.begin(), num1.end());
std::reverse(num2.begin(), num2.end());
std::string sum = highAccuracyAddition(num1, num2);
std::reverse(sum.begin(), sum.end());
std::cout << sum << std::endl;
return 0;
}
我:AC了!