int爆掉后的我
查看原帖
int爆掉后的我
1161278
happy_lion楼主2024/8/16 14:22

我:什么?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了!

2024/8/16 14:22
加载中...