#include <iostream> #include <string> #include <cstdlib> #include <vector> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); string num1, num2; cin >> num1 >> num2; int fill = abs( int(num1.size() - num2.size())); int n = num1.size(); if (num1.size() > num2.size()) { n = num1.size(); char a = '0'; for (int i = 0; i < fill; i++) { num2 = a + num2; } } if (num1.size() < num2.size()) { n = num2.size(); char a = '0'; for (int i = 0; i < fill; i++) { num1 = a + num1; } } vector <int> result; int rest = 0; int add = 0; result.resize(n + 1); for (int i = n; i > 0; i--) { int sum = num1[i - 1] - '0' + num2[i - 1] - '0' + rest; add = sum % 10; result[i] = add; rest = sum / 10; } if (rest != 0) { cout << rest; } for (int i = 1; i <= n; i++) { cout << result[i]; } }
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 | #include <iostream> #include <string> #include <cstdlib> #include <vector> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); string num1, num2; cin >> num1 >> num2; int fill = abs( int(num1.size() - num2.size())); int n = num1.size(); if (num1.size() > num2.size()) { n = num1.size(); char a = '0'; for (int i = 0; i < fill; i++) { num2 = a + num2; } } if (num1.size() < num2.size()) { n = num2.size(); char a = '0'; for (int i = 0; i < fill; i++) { num1 = a + num1; } } vector <int> result; int rest = 0; int add = 0; result.resize(n + 1); for (int i = n; i > 0; i--) { int sum = num1[i - 1] - '0' + num2[i - 1] - '0' + rest; add = sum % 10; result[i] = add; rest = sum / 10; } if (rest != 0) { cout << rest; } for (int i = 1; i <= n; i++) { cout << result[i]; } } |