fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. using ll = long long ;
  4. ll gcd(int a,int b){
  5. while(b){
  6. ll du = a%b;
  7. a = b;
  8. b = du;
  9. }
  10. return a;
  11. }
  12. ll lcm(int a,int b){
  13. return a/gcd(a,b)*b;
  14. }
  15. struct PhanSo{
  16. ll tu,mau;
  17. void rutGon(){
  18. ll uc = gcd(this->tu,this->mau);
  19. this->tu/=uc;
  20. this->mau/=uc;
  21. }
  22. PhanSo operator - (PhanSo b){
  23. ll mauChung = this->mau*b.mau;
  24. ll t1 = this->tu*b.mau - b.tu*this->mau;
  25. PhanSo res{t1,mauChung};
  26. res.rutGon();
  27. return res;
  28. }
  29. };
  30. int main(){
  31. PhanSo a;
  32. cin >> a.tu >> a.mau ;
  33. while(a.tu){
  34. ll x ;
  35. if(a.mau%a.tu ==0){
  36. x = a.mau / a.tu;
  37. }
  38. else x = a.mau / a.tu + 1;
  39. PhanSo donVi{1,x};
  40. cout << 1 << "/" << x;
  41. a = a - donVi;
  42. if(a.tu) cout << " + ";
  43. }
  44. }
  45.  
Success #stdin #stdout 0.01s 5288KB
stdin
9 6
stdout
1/1 + 1/2