#include <iostream> #include <string> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef unsigned int uint; int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(NULL); int numer = 1; char przeniesienie = 0; string a, b; string::reverse_iterator it1, it2, iend1, iend2; getline(cin, a); getline(cin, b); if(a.size() > b.size()) { it1 = a.rbegin(); iend1 = a.rend(); it2 = b.rbegin(); iend2 = b.rend(); } else { numer = 2; it1 = b.rbegin(); iend1 = b.rend(); it2 = a.rbegin(); iend2 = a.rend(); } for( ; it2 != iend2; ++it1, ++it2) { *it1 += *it2 + przeniesienie - '0'; if(*it1 > '9') { przeniesienie = 1; *it1 -= 10; } else przeniesienie = 0; } while(przeniesienie > 0 && it1 != iend1) { ++*it1; if(*it1 > '9') *it1 -= 10; else przeniesienie = 0; ++it1; } if(przeniesienie > 0) cout << '1'; cout << (numer == 1 ? a: b) << endl; return 0; }
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 | #include <iostream> #include <string> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef unsigned int uint; int main() { std::ios_base::sync_with_stdio(false); std::cin.tie(NULL); int numer = 1; char przeniesienie = 0; string a, b; string::reverse_iterator it1, it2, iend1, iend2; getline(cin, a); getline(cin, b); if(a.size() > b.size()) { it1 = a.rbegin(); iend1 = a.rend(); it2 = b.rbegin(); iend2 = b.rend(); } else { numer = 2; it1 = b.rbegin(); iend1 = b.rend(); it2 = a.rbegin(); iend2 = a.rend(); } for( ; it2 != iend2; ++it1, ++it2) { *it1 += *it2 + przeniesienie - '0'; if(*it1 > '9') { przeniesienie = 1; *it1 -= 10; } else przeniesienie = 0; } while(przeniesienie > 0 && it1 != iend1) { ++*it1; if(*it1 > '9') *it1 -= 10; else przeniesienie = 0; ++it1; } if(przeniesienie > 0) cout << '1'; cout << (numer == 1 ? a: b) << endl; return 0; } |