Advertisement
anhkiet2507

Untitled

Sep 11th, 2021
2,103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.33 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <string>
  4. #include <vector>
  5. #include <algorithm>
  6. #include <iomanip>
  7. #include <map>
  8. #include <unordered_set>
  9. using namespace std;
  10. long long UCLN(long long a, long long b){
  11.     if(b==0){
  12.         return a;
  13.     } else {
  14.         return UCLN(b,a%b);
  15.     }
  16. }
  17. long long BCNN(long long a, long long b){
  18.     return (a*b/UCLN(a,b) );
  19. }
  20. class PhanSo{
  21. private:
  22.     long long tuso, mauso;
  23. public:
  24.     PhanSo(){
  25.         tuso = 1;
  26.         mauso = 1;
  27.     }
  28.     PhanSo(int n, int d){
  29.         tuso = n;
  30.         mauso = d;
  31.     }
  32.     friend istream& operator>>(istream& in, PhanSo& f) {
  33.         cin >> f.tuso >> f.mauso;
  34.         return in;
  35.     }
  36.     void rutgon(){
  37.         long long ts = tuso, ms = mauso;
  38.         tuso = tuso/UCLN(ts, ms);
  39.         mauso = mauso/UCLN(ts,ms);
  40.     }
  41.     friend PhanSo operator+(PhanSo &p, PhanSo &q){
  42.         PhanSo ketqua;
  43.         long long msc = BCNN(p.mauso,q.mauso);
  44.         ketqua.mauso = msc;
  45.         ketqua.tuso = msc/p.mauso*p.tuso + msc/q.mauso*q.tuso;
  46.         ketqua.rutgon();
  47.         return ketqua;
  48.     }
  49.     friend ostream& operator<<(ostream& out, PhanSo&f) {
  50.         cout << f.tuso << "/" << f.mauso;
  51.         return out;
  52.     }
  53.  
  54.    
  55. };
  56.  
  57. int main() {
  58.     PhanSo p(1,1), q(1,1);
  59.     cin >> p >> q;
  60.     cout << p + q;
  61.     return 0;
  62. }
  63.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement