Facebook
From Aqua Hog, 3 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 165
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int A[100] = {0}, B[100] = {0}, W[100] = {0}, W2[100] = {0};
  6.  
  7. void dodaj (int k)
  8. {
  9.  for ( int i = 1; i <= k; i++)
  10.  {
  11.  W [i+1] = ( W[i] + A[i] + B[i] ) /10;
  12.  
  13.  W [i] = ( W[i] + A[i] + B[i] ) %10;
  14.  }
  15.  
  16.  W[0] = k;
  17. }
  18.  
  19.  
  20.  
  21. void odejmij (int k, int k1, int k2)
  22. {
  23.     int Aod[100] = {0}, Bod[100] = {0}, i = 1, c = 0;
  24.    
  25.     bool ujemna = false;
  26.    
  27.     if (k1 < k2)
  28.     ujemna = true;
  29.    
  30.     if (k1 == k2 && A[k1] < B[k2])
  31.     ujemna = true;
  32.    
  33.     if (ujemna)
  34.         for (int j = 0; j <= k2; j++)
  35.         {
  36.             Aod[j] = B[j];
  37.             Bod[j] = A[j];
  38.         }
  39.        
  40.     else
  41.         for (int j = 0; j <=k1; j++)
  42.         {
  43.             Aod[j] = A[j];
  44.             Bod[j] = B[j];
  45.         }
  46.     for (i = 0; i < k; i++)
  47.     {
  48.         if (Aod[i + 1] - Bod[i + 1] - c < 0)
  49.         {
  50.             W2[k - 1] = Aod[i + 1] + 10 - Bod[i + 1] - c;
  51.             c = 1;
  52.         }
  53.        
  54.         else
  55.         {
  56.             W2[k - 1] = Aod[i + 1] - Bod[i + 1] - c;
  57.             c = 0;
  58.         }
  59.     }
  60.    
  61.    if (ujemna)
  62.    W2[0] = -1;
  63.    
  64. }
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82. int main()
  83. {
  84.  string sliczba;
  85.  string sliczba2;
  86.  int k;
  87.  int k1;
  88.  int k2;
  89.  
  90.  
  91.  cin >> sliczba;
  92.  k1 = sliczba.length();
  93.  
  94.  int j = 1;
  95.  
  96.  for ( int i = sliczba.length()-1; i >= 0; i-- )
  97.  
  98.  {
  99.  A[j] = sliczba.at (i) - '0' ;
  100.  
  101.  j++;
  102.  }
  103.  
  104.  
  105.  cin >> sliczba2;
  106.  k2 = sliczba2.length();
  107.  
  108.  
  109.  if ( k1 > k2 )
  110.  k = k1;
  111.  
  112.  else
  113.  k = k2;
  114.  
  115.  j = 1;
  116.  
  117.  for ( int i = sliczba2.length()-1; i >= 0; i-- )
  118.  
  119.  {
  120.  B[j] = sliczba2.at (i) - '0';
  121.  
  122.  j++;
  123.  }
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  dodaj(k);
  133.  
  134.  odejmij(k,k1,k2);
  135.  
  136.  
  137.  cout << "Wynik dodawania: ";
  138.  
  139.  for ( int i = W[0]; i > 0; i--)
  140.  {
  141.  cout << W[i];
  142.  }
  143.  cout << " " << endl;
  144.  
  145.  
  146.  cout << "Wynik odejmowania: ";
  147.  
  148.  if (W2[0] !=0)
  149.  cout << '-';
  150.  
  151.  for (int i = 1; i <= k; i++ )
  152.  {
  153.      cout << W2[i];
  154.  }
  155.  
  156.  
  157.  return 0;
  158. }