#include <iostream> #include <string> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); // string a,b; // cin >> a >> b; string s1, s2, s3; int p, w, i, j, k, n; // odczytujemy liczby do dodawania cin >> s1 >> s2; // obliczamy długości każdego z łańcuchów i = s1.length(); j = s2.length(); // w n wyznaczamy długość najkrótszego łańcucha n = i; if (j < i) n = j; // zerujemy przeniesienie oraz łańcuch wynikowy p = 0; s3 = ""; // sumujemy kolejne od końca cyfry obu łańcuchów for (k = 1; k <= n; k++) { w = (int)(s1[--i]) + (int)(s2[--j]) + p - 96; p = w / 10; s3 = (char)((w % 10) + 48) + s3; } // jeśli łańcuch s1 ma jeszcze cyfry, to dodajemy do nich // przeniesienia i umieszczamy w łańcuchu wynikowym while (i) { w = s1[--i] + p - 48; p = w / 10; s3 = (char)((w % 10) + 48) + s3; } // jeśli łańcuch s2 ma jeszcze cyfry, to dodajemy do nich // przeniesienia i umieszczamy w łańcuchu wynikowym while (j) { w = s2[--j] + p - 48; p = w / 10; s3 = (char)((w % 10) + 48) + s3; } // jeśli pozostało przeniesienie, to dołączamy je do cyfr // w łańcuchu wynikowym if (p) s3 = (char)(p + 48) + s3; // jeśli w s3 nie ma cyfr, to wpisujemy tam 0 if (s3 == "") s3 = "0"; // wyświetlamy wynik cout << s3 << endl; }
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 | #include <iostream> #include <string> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); // string a,b; // cin >> a >> b; string s1, s2, s3; int p, w, i, j, k, n; // odczytujemy liczby do dodawania cin >> s1 >> s2; // obliczamy długości każdego z łańcuchów i = s1.length(); j = s2.length(); // w n wyznaczamy długość najkrótszego łańcucha n = i; if (j < i) n = j; // zerujemy przeniesienie oraz łańcuch wynikowy p = 0; s3 = ""; // sumujemy kolejne od końca cyfry obu łańcuchów for (k = 1; k <= n; k++) { w = (int)(s1[--i]) + (int)(s2[--j]) + p - 96; p = w / 10; s3 = (char)((w % 10) + 48) + s3; } // jeśli łańcuch s1 ma jeszcze cyfry, to dodajemy do nich // przeniesienia i umieszczamy w łańcuchu wynikowym while (i) { w = s1[--i] + p - 48; p = w / 10; s3 = (char)((w % 10) + 48) + s3; } // jeśli łańcuch s2 ma jeszcze cyfry, to dodajemy do nich // przeniesienia i umieszczamy w łańcuchu wynikowym while (j) { w = s2[--j] + p - 48; p = w / 10; s3 = (char)((w % 10) + 48) + s3; } // jeśli pozostało przeniesienie, to dołączamy je do cyfr // w łańcuchu wynikowym if (p) s3 = (char)(p + 48) + s3; // jeśli w s3 nie ma cyfr, to wpisujemy tam 0 if (s3 == "") s3 = "0"; // wyświetlamy wynik cout << s3 << endl; } |