Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- // A12b
- string b(string s, string t)
- {
- // sprawdzamy napisy s i t czy poprawnie przechowują liczby
- for(unsigned i = 0; i < s.size(); ++i)
- if(s[i] < '0' || s[i] > '9')
- return "";
- for(unsigned i = 0; i < t.size(); ++i)
- if(t[i] < '0' || t[i] > '9')
- return "";
- // odwracanie
- string so, to;
- so = "";
- to = "";
- for(int i = s.size() - 1; i >= 0; --i)
- {
- so += s[i];
- }
- for(int i = t.size() - 1; i >= 0; --i)
- {
- to += t[i];
- }
- string wynik = "";
- char znak;
- bool flaga;
- int suma;
- // jeżeli napis t jest dłuższy, zamieniamy napisy:
- if(t.size() > s.size())
- swap(to, so);
- flaga = false;
- for(unsigned i = 0; i < to.size(); ++i)
- {
- if(flaga)
- {
- suma = 1;
- flaga = false;
- }
- else
- suma = 0;
- suma += static_cast<int>(so[i]) + static_cast<int>(to[i]) - 96;
- if(suma > 9)
- {
- flaga = true;
- suma -= 10;
- }
- znak = static_cast<char>(suma + 48);
- wynik += znak;
- }
- // kontynuujemy z napisem s
- for(unsigned i = to.size(); i < so.size(); ++i)
- {
- if(flaga)
- {
- suma = 1;
- flaga = false;
- }
- else
- suma = 0;
- suma += static_cast<int>(so[i]) - 48;
- if(suma > 9)
- {
- flaga = true;
- suma -= 10;
- }
- znak = static_cast<char>(suma + 48);
- wynik += znak;
- }
- if(flaga)
- wynik += '1';
- string odwrocona = "";
- for(int i = wynik.size() - 1; i >= 0; --i)
- odwrocona += wynik[i];
- return odwrocona;
- }
- int main()
- {
- string liczba = "295562161";
- string druga_liczba = "7897897899";
- cout << b(liczba, druga_liczba) << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment