大数求和,利用整型数组来实现,利用倒序,再注意进位的处理。
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main() {
    string s1, s2;
    getline(cin, s1, '\n');
    getline(cin, s2, '\n');
    int size1 = s1.size();
    int size2 = s2.size();
    int size_res = max(size1, size2);
    int num1[10000]{ 0 }, num2[10000]{ 0 };
    int num_res[10000] { 0 };
    // 倒序
    for (int i = 0, j = size1 - 1; i < size1, j >= 0; i++, j--) {
        num1[i] = s1[j] - '0';
    }
    for (int i = 0, j = size2 - 1; i < size2, j >= 0; i++, j--) {
        num2[i] = s2[j] - '0';
    }
    // 各个位置相加
    for (int i = 0; i < size_res; i++) {
        num_res[i] = num1[i] + num2[i];
    }
    // 进位处理
    for (int i = 0; i < size_res; i++) {
        if (num_res[i] > 9) {
            num_res[i + 1] += num_res[i] / 10;
            num_res[i] %= 10;
            if (i == size_res - 1) {
                size_res++;
            }
        }
    }
    // 倒序输出
    for (int i = size_res - 1; i >= 0; i--) {
        cout << num_res[i];
    }
}