#include <bits/stdc++.h> using namespace std; void suma(string a, string b) { vector<char> wynik; string akt; string wpisz; int i=0; int j=1; for (i=0; i<min(a.size(), b.size()); ++i) { akt = to_string(a[a.size()-i-1] + b[b.size()-i-1] - 96); //cout << akt << endl; if (akt.size() == 1) { wynik.insert(wynik.begin(), akt[0]); } else { //cout << akt[1] << endl; wynik.insert(wynik.begin(), akt[1]); if (a.size()-1==i && b.size()-1==i) { wynik.insert(wynik.begin(), akt[0]); } else if (b.size()-1==i) { a[a.size()-i-2] += 1; } else { b[b.size()-i-2] += 1; } } } if (a.size() > b.size()) { for (i=i; i<a.size(); ++i) { if (a[a.size()-i-1]<='9') { wynik.insert(wynik.begin(), a[a.size()-i-1]); } else { wpisz = to_string(a[a.size()-i-1]-'0'); wynik.insert(wynik.begin(), wpisz[1]); if (a.size()-1!=i) { a[a.size()-i-2] += 1; } else { wynik.insert(wynik.begin(), wpisz[0]); } } } } if (a.size() < b.size()) { for (i=i; i<b.size(); ++i) { if (b[b.size()-i-1]<='9') { wynik.insert(wynik.begin(), b[b.size()-i-1]); } else { wpisz = to_string(b[b.size()-i-1]-'0'); wynik.insert(wynik.begin(), wpisz[1]); if (b.size()-1!=i) { b[b.size()-i-2] += 1; } else { wynik.insert(wynik.begin(), wpisz[0]); } } } } for (i=0; i<wynik.size(); ++i) { cout << wynik[i]; } //return wynik; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); string a, b; cin>>a>>ws>>b; //cout<<a<<endl<<b<<endl<<endl; suma(a, b); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | #include <bits/stdc++.h> using namespace std; void suma(string a, string b) { vector<char> wynik; string akt; string wpisz; int i=0; int j=1; for (i=0; i<min(a.size(), b.size()); ++i) { akt = to_string(a[a.size()-i-1] + b[b.size()-i-1] - 96); //cout << akt << endl; if (akt.size() == 1) { wynik.insert(wynik.begin(), akt[0]); } else { //cout << akt[1] << endl; wynik.insert(wynik.begin(), akt[1]); if (a.size()-1==i && b.size()-1==i) { wynik.insert(wynik.begin(), akt[0]); } else if (b.size()-1==i) { a[a.size()-i-2] += 1; } else { b[b.size()-i-2] += 1; } } } if (a.size() > b.size()) { for (i=i; i<a.size(); ++i) { if (a[a.size()-i-1]<='9') { wynik.insert(wynik.begin(), a[a.size()-i-1]); } else { wpisz = to_string(a[a.size()-i-1]-'0'); wynik.insert(wynik.begin(), wpisz[1]); if (a.size()-1!=i) { a[a.size()-i-2] += 1; } else { wynik.insert(wynik.begin(), wpisz[0]); } } } } if (a.size() < b.size()) { for (i=i; i<b.size(); ++i) { if (b[b.size()-i-1]<='9') { wynik.insert(wynik.begin(), b[b.size()-i-1]); } else { wpisz = to_string(b[b.size()-i-1]-'0'); wynik.insert(wynik.begin(), wpisz[1]); if (b.size()-1!=i) { b[b.size()-i-2] += 1; } else { wynik.insert(wynik.begin(), wpisz[0]); } } } } for (i=0; i<wynik.size(); ++i) { cout << wynik[i]; } //return wynik; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); string a, b; cin>>a>>ws>>b; //cout<<a<<endl<<b<<endl<<endl; suma(a, b); } |