Click Here to go back to the homepage.

Simple Addition Solution:


#include <bits/stdc++.h>
using namespace std;

void generate(string s1, string s2, vector<short> *ans){
    bool carry = false;
    int val;
    for(auto it1 = s1.rbegin(), it2 = s2.rbegin(); it1 != s1.rend() || it2 != s2.rend();){
        val = carry ? 1 : 0;
        if(it1 != s1.rend()){
            val += *it1;
            it1++;
        }
        if(it2 != s2.rend()){
            val += *it2;
            it2++;
        }
        val %= 48;
        if(val > 9){
            carry = true;
            val -= 10;
        } else {
            carry = false;
        }
        (*ans).push_back(val);        
    }
    if(carry){
        cout << 1;
    }
    for_each((*ans).rbegin(), (*ans).rend(), [](const int &i){ cout << i; });
}

int main(){
    // #ifndef TESTING
    // freopen("input.txt", "r", stdin);
    // freopen("output.txt", "w", stdout);
    // #endif

    string s1, s2;
    cin >> s1 >> s2;
    vector<short> ans;
    
    generate(s1, s2, &ans);
    return 0;
}