Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <string>
- #include <vector>
- #include <algorithm>
- #include <iomanip>
- #include <map>
- #include <unordered_set>
- using namespace std;
- long long UCLN(long long a, long long b){
- if(b==0){
- return a;
- } else {
- return UCLN(b,a%b);
- }
- }
- long long BCNN(long long a, long long b){
- return (a*b/UCLN(a,b) );
- }
- class PhanSo{
- private:
- long long tuso, mauso;
- public:
- PhanSo(){
- tuso = 1;
- mauso = 1;
- }
- PhanSo(int n, int d){
- tuso = n;
- mauso = d;
- }
- friend istream& operator>>(istream& in, PhanSo& f) {
- cin >> f.tuso >> f.mauso;
- return in;
- }
- void rutgon(){
- long long ts = tuso, ms = mauso;
- tuso = tuso/UCLN(ts, ms);
- mauso = mauso/UCLN(ts,ms);
- }
- friend PhanSo operator+(PhanSo &p, PhanSo &q){
- PhanSo ketqua;
- long long msc = BCNN(p.mauso,q.mauso);
- ketqua.mauso = msc;
- ketqua.tuso = msc/p.mauso*p.tuso + msc/q.mauso*q.tuso;
- ketqua.rutgon();
- return ketqua;
- }
- friend ostream& operator<<(ostream& out, PhanSo& f) {
- cout <<f.tuso << "/" <<f.mauso;
- return out;
- }
- };
- int main() {
- PhanSo p(1,1), q(1,1);
- cin >> p >> q;
- PhanSo ketqua = p+q;
- cout << ketqua;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement