CCCPaste

Untitled

#include 
using namespace std;

string add_two_numbers(string a, string b) {
    if((int) b.size() > (int) a.size()) {
        swap(a, b);
    }
    int carry = 0;
    string res = "";
    int i = (int) a.size() - 1, j = (int) b.size() - 1;
    while(j >= 0) {
        int digit_a = (int) (a[i] - '0');
        int digit_b = (int) (b[j] - '0');
        int sum = digit_a + digit_b + carry;
        if(sum < 10) {
            res += (sum + '0');
        }
        else {
            carry = 1;
            res += ((sum % 10) + '0');
        }
        i--;
        j--;
    }
    while(i >= 0) {
        int digit_a = (int) (a[i] - '0');
        int sum = digit_a + carry;
        if(sum < 10) {
            carry = 0;
            res += (sum + '0');
        }
        else {
            carry = 1;
            res += ((sum % 10) + '0');
        }
        i--;
    }
    if(carry == 1) {
        res += "1";
    }
    reverse(res.begin(), res.end());
    return res;
}
int main() {
    ios_base::sync_with_stdio(false);
    cout << add_two_numbers("999", "999");
    return 0;
}