Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- int main()
- {
- string s1, s2, s3;
- bool mazani_s1 = true;
- bool mazani_s2 = true;
- bool mazani_s3 = true;
- bool add = false;
- cout << "Zadejte dve binarni cisla:" << endl;
- cin >> s1;
- cin >> s2;
- //osetreni vstupu proti jinym znakum, nez 1 nebo 0 a smazani prebytecnych nul na zacatku
- for (unsigned int i = 0; i < s1.length(); i++)
- {
- if ((s1[i] != '0') && (s1[i] != '1'))
- {
- cout << "Nespravny vstup." << endl;
- return 0;
- }
- if (s1[i] == 49)
- {
- mazani_s1 = false;
- }
- if (s1[i] == 48 && mazani_s1 == true)
- {
- s1.erase(i, 1);
- i = -1;
- }
- }
- for (unsigned int i = 0; i < s2.length(); i++)
- {
- if ((s2[i] != '0') && (s2[i] != '1'))
- {
- cout << "Nespravny vstup." << endl;
- return 0;
- }
- if (s2[i] == 49)
- {
- mazani_s2 = false;
- }
- if (s2[i] == 48 && mazani_s2 == true)
- {
- s2.erase(i, 1);
- i = -1;
- }
- }
- while (s1.length() != s2.length())
- {
- if (s1.length() > s2.length())
- {
- s2 = "0" + s2;
- }
- else s1 = "0" + s1;
- };
- s2 = "0" + s2;
- s1 = "0" + s1;
- unsigned int i = s1.length();
- do
- {
- if (s1[i] == '1' && s2[i] == '1')
- {
- if (add == true)
- {
- s3 = "1" + s3;
- }
- else
- {
- s3 = "0" + s3;
- add = true;
- }
- }
- if (s1[i] == '0' && s2[i] == '0')
- {
- if(add == true)
- {
- s3 = "1" + s3;
- add = false;
- }
- else
- {
- s3 = "0" + s3;
- add = false;
- }
- }
- if (s1[i] == '1' && s2[i] == '0')
- {
- if (add == true)
- {
- s3 = "0" + s3;
- }
- else
- {
- s3 = "1" + s3;
- add = false;
- }
- }
- if (s1[i] == '0' && s2[i] == '1')
- {
- if (add == true)
- {
- s3 = "0" + s3;
- }
- else
- {
- s3 = "1" + s3;
- add = false;
- }
- }
- --i;
- } while (i != 0);
- if (add == true)
- {
- s3 = "1" + s3;
- }
- for (unsigned int i = 0; i < s3.length(); i++)
- {
- if (s3[i] == 49)
- {
- mazani_s3 = false;
- }
- if (s3[i] == 48 && mazani_s3 == true)
- {
- s3.erase(i, 1);
- i = -1;
- }
- }
- cout << "Soucet: " << s3 << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment