#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; } |
English