Advertisement
StabCrab

Первая и вторая

Mar 20th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.11 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <algorithm>
  4.  
  5. using namespace std;
  6. bool compare(string a, string b)
  7. {
  8.     if (a.length() > b.length())
  9.         return true;
  10.     if (a.length() < b.length())
  11.         return false;
  12.     for (int i = 0; i < a.length(); i++)
  13.     {
  14.         if (a[i] > b[i])
  15.             return true;
  16.         if (a[i] < b[i])
  17.             return false;
  18.     }
  19.     return true;
  20. }
  21. string minuss(string a, string b)
  22. {
  23.     std:: reverse(a.begin(), a.end());
  24.     std:: reverse(b.begin(), b.end());
  25.     for (int i = 0; i < max(a.length(), b.length()); i++)
  26.     {
  27.         if (isalpha(a[i]) ||(isalpha(b[i])))
  28.         {
  29.             return "RORRE";
  30.         }
  31.         if (i == a.length())
  32.             a += '0';
  33.         if (i == b.length())
  34.             b += '0';
  35.         a[i] = a[i] - b[i] + 48;
  36.         if (a[i] < 48)
  37.         {
  38.             a[i] += 10;
  39.             a[i+1]--;
  40.         }
  41.     }
  42.     while (a[a.length() - 1] == '0')
  43.     {
  44.         a.erase(a.end() - 1);
  45.     }
  46.     std:: reverse(a.begin(), a.end());
  47.     return a;
  48. }
  49. string sum(string a, string b)
  50. {
  51.     std:: reverse(a.begin(), a.end());
  52.     std:: reverse(b.begin(), b.end());
  53.     bool if10 = false;
  54.     for (int i = 0; i < max(a.length(), b.length()); i++)
  55.     {
  56.         if (isalpha(a[i]) ||(isalpha(b[i])))
  57.         {
  58.             return "RORRE";
  59.         }
  60.         if (i == a.length())
  61.             a += '0';
  62.         if (i == b.length())
  63.             b += '0';
  64.         if(if10)
  65.         {
  66.             a[i] += b[i] - 48 + 1;
  67.             if10 = false;
  68.         }
  69.         else
  70.             a[i] += b[i] - 48;
  71.         if (a[i] > 57)
  72.         {
  73.             a[i] -= 10;
  74.             if10 = true;
  75.         }
  76.     }
  77.     if(if10)
  78.         a += '1';
  79.     std:: reverse(a.begin(), a.end());
  80.     return a;
  81. }
  82. int main()
  83. {
  84.     string a, b, c;
  85.     cin >> a;
  86.     cin >> b;
  87.     if (compare(a, b))
  88.     {
  89.         c = sum(a, b);
  90.         cout << c << endl;
  91.         c = minuss(a, b);
  92.         cout << c;
  93.     }
  94.     else
  95.     {
  96.         c = sum(b, a);
  97.         cout << c << endl;
  98.         c = minuss(b, a);
  99.         cout << c;
  100.     }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement