Advertisement
Guest User

cppdodawanie

a guest
Nov 12th, 2019
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.38 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. string a,b,d;
  6. char c[100005];
  7.  
  8.  
  9. void dod()
  10. {
  11.     int prz=0;
  12.     for(int i=a.size()-1;i>=0;i--)
  13.     {
  14.         c[i]=((int)a[i]-48+(int)b[i]-48+prz)%10+48;
  15.         prz=((int)a[i]-48+(int)b[i]-48+prz)/10;
  16.     }
  17. }
  18. void odj()
  19. {
  20.     for(int i=a.size()-1;i>=0;i--)
  21.     {
  22.         if((int)a[i]>=(int)b[i])
  23.             c[i] = (int)a[i] - (int)b[i] + 48;
  24.         else
  25.         {
  26.             for(int j=i-1;j>=0;j--)
  27.             {
  28.                 if(a[j]>0)
  29.                 {
  30.                     a[j]=int(a[j])-1;
  31.                     for (int k=j; k<i-1; k++)
  32.                     {
  33.                         a[k+1] = 48+9;
  34.                     }
  35.                     c[i]=10+(int)a[i]-(int)b[i]+48;
  36.                     break;
  37.                 }
  38.             }
  39.         }
  40.     }
  41. }
  42. void wypisz()
  43. {
  44.     int j=0;
  45.     while(c[j]=='0')
  46.         j++;
  47.     for(int i=j;i<a.size();i++)
  48.     {
  49.         cout << c[i];
  50.     }
  51. }
  52. bool comp()
  53. {
  54.     for(int i=0;i<a.size();i++)
  55.     {
  56.         if(a[i]<b[i])
  57.         {
  58.             return 0;
  59.         }
  60.  
  61.     }
  62.     return 1;
  63. }
  64. int main()
  65. {
  66.     cin >> a >> b;
  67.     cout << b << " ";
  68.     int co;
  69.     if(a[0]=='-')
  70.     {
  71.         if(b[0]=='-')
  72.         {
  73.             b=b.substr(1,b.length());
  74.             a=a.substr(1,a.length());
  75.             co=1;
  76.         }
  77.         else
  78.         {
  79.             a=a.substr(1,a.length());
  80.             co=2;
  81.         }
  82.     }
  83.     else{
  84.         if(b[0]=='-')
  85.         {
  86.             b=b.substr(1,b.length());
  87.             co=3;
  88.         }
  89.         else{
  90.             co=1;
  91.         }
  92.     }
  93.     cout << b << " ";
  94.     if(b.size()>=a.size())
  95.         b=string("0") + b;
  96.     else
  97.         a=string("0") + a;
  98.     while(b.size()>a.size())
  99.     {
  100.         a=string("0") + a;
  101.     }
  102.     while(a.size()>b.size())
  103.     {
  104.         b=string("0") + b;
  105.     }
  106.     cout << b << " ";
  107.     if(co!=1)
  108.     {
  109.         b=b.substr(1,b.length());
  110.         a=a.substr(1,a.length());
  111.     }
  112.     cout << b << " ";
  113.     if(co==1)
  114.     {
  115.         dod();
  116.     }
  117.     else
  118.     {
  119.         if(comp()==1)
  120.         {
  121.             odj();
  122.             if(co==2)
  123.                 cout << '-';
  124.         }
  125.         else
  126.         {
  127.             d=a;
  128.             a=b;
  129.             b=d;
  130.             odj();
  131.             if(co==3)
  132.                 cout << '-';
  133.         }
  134.     }
  135.     wypisz();
  136.  
  137.  
  138.  
  139.  
  140.  
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement