#include <iostream>
#include <string>
using namespace std;
string add(string a, string b)
{
// Jeśli jedna z liczb jest pusta, zwróć drugą
if (a.empty()) return b;
if (b.empty()) return a;
// Zmienne pomocnicze
string result;
int carry = 0;
// Przeprowadź dodawanie cyfra po cyfrze, od końca liczb
for (int i = a.length() - 1, j = b.length() - 1; i >= 0 || j >= 0 || carry; i--, j--)
{
int sum = carry;
// Jeśli obie liczby są dłuższe niż aktualna pozycja, dodaj cyfrę z a i b
if (i >= 0) sum += a[i] - '0';
if (j >= 0) sum += b[j] - '0';
// Oblicz cyfrę wyniku i ewentualny przeniesienie
result = (char)(sum % 10 + '0') + result;
carry = sum / 10;
}
return result;
}
int main()
{
// Pobierz a i b
string a, b;
cin >> a >> b;
// Wypisz sumę a i b
cout << add(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 | #include <iostream> #include <string> using namespace std; string add(string a, string b) { // Jeśli jedna z liczb jest pusta, zwróć drugą if (a.empty()) return b; if (b.empty()) return a; // Zmienne pomocnicze string result; int carry = 0; // Przeprowadź dodawanie cyfra po cyfrze, od końca liczb for (int i = a.length() - 1, j = b.length() - 1; i >= 0 || j >= 0 || carry; i--, j--) { int sum = carry; // Jeśli obie liczby są dłuższe niż aktualna pozycja, dodaj cyfrę z a i b if (i >= 0) sum += a[i] - '0'; if (j >= 0) sum += b[j] - '0'; // Oblicz cyfrę wyniku i ewentualny przeniesienie result = (char)(sum % 10 + '0') + result; carry = sum / 10; } return result; } int main() { // Pobierz a i b string a, b; cin >> a >> b; // Wypisz sumę a i b cout << add(a, b) << endl; return 0; } |
English