大家好,我是斯特林,就那个斯大林的粉丝斯特林。什么?让我写a+b?不用高精度她会很伤心的!
那么本蒟蒻就给大家送上一份高精度的题解吧!代码如下:

#include <iostream>  
#include <string>  
#include <vector>  
  
using namespace std;  
  
// 大数加法  
string add(string a, string b) {  
    vector<int> a_digits, b_digits;  
    // 将两个字符串转换为数字数组  
    for (int i = a.size() - 1; i >= 0; i--) {  
        a_digits.push_back(a[i] - '0');  
    }  
    for (int i = b.size() - 1; i >= 0; i--) {  
        b_digits.push_back(b[i] - '0');  
    }  
    // 手动模拟竖式计算  
    vector<int> result_digits;  
    int carry = 0;  
    int i = 0, j = 0;  
    while (i < a_digits.size() || j < b_digits.size()) {  
        int x = (i < a_digits.size()) ? a_digits[i++] : 0;  
        int y = (j < b_digits.size()) ? b_digits[j++] : 0;  
        int sum = x + y + carry;  
        result_digits.push_back(sum % 10);  
        carry = sum / 10;  
    }  
    if (carry != 0) {  
        result_digits.push_back(carry);  
    }  
    // 将结果转换为字符串并反转  
    string result;  
    for (int i = result_digits.size() - 1; i >= 0; i--) {  
        result += to_string(result_digits[i]);  
    }  
    return result;  
}  
  
int main() {  
    string a, b;  
    cin >> a >> b;  
    cout << add(a, b) << endl;  
    return 0;  
}