Untitled

 avatar
unknown
plain_text
2 years ago
3.0 kB
9
Indexable
import java.util.Scanner;

public class PhanSo {
    private int tuSo;
    private int mauSo;

    public PhanSo(int tuSo, int mauSo) {
        this.tuSo = tuSo;
        if (tuSo == 0) {
            this.mauSo = 1;
        } else {
            this.mauSo = mauSo;
        }
    }

    public PhanSo() {
        this.tuSo = 0;
        this.mauSo = 1;
    }

    public int getTuSo() {
        return tuSo;
    }

    public void setTuSo(int tuSo) {
        this.tuSo = tuSo;
    }

    public int getMauSo() {
        return mauSo;
    }

    public void setMauSo(int mauSo) {
        if (mauSo == 0) {
            this.mauSo = 1;
        } else {
            this.mauSo = mauSo;
        }
    }

    public PhanSo cong(PhanSo ps) {
        PhanSo ps3 = new PhanSo();
        ps3.tuSo = (this.tuSo * ps.mauSo) + (this.mauSo * ps.tuSo);
        ps3.mauSo = this.mauSo * ps.mauSo;
        return ps3;
    }

    public PhanSo tru(PhanSo ps) {
        PhanSo ps3 = new PhanSo();
        ps3.tuSo = (this.tuSo * ps.mauSo) - (this.mauSo * ps.tuSo);
        ps3.mauSo = this.mauSo * ps.mauSo;
        return ps3;
    }

    public PhanSo nhan(PhanSo ps) {
        PhanSo ps3 = new PhanSo();
        ps3.tuSo = this.tuSo * ps.tuSo;
        ps3.mauSo = this.mauSo * ps.mauSo;
        return ps3;
    }

    public PhanSo chia(PhanSo ps) {
        if (ps.tuSo == 0) {
            return null;
        }
        PhanSo ps3 = new PhanSo();
        ps3.tuSo = this.tuSo * ps.mauSo;
        ps3.mauSo = this.mauSo * ps.tuSo;
        return ps3;
    }

    public PhanSo reduce(PhanSo ps) {
        PhanSo ps3 = new PhanSo();
        int ucln = gcd(this.tuSo, this.mauSo);
        ps3.tuSo = this.tuSo / ucln;
        ps3.mauSo = this.mauSo / ucln;
        return ps3;
    }

    private int gcd(int a, int b) {
        if (b == 0) {
            return a;
        } else {
            return gcd(b, a % b);
        }
    }

    public void nhap() {
        Scanner scanner = new Scanner(System.in);
        System.out.print("Nhập tử số: ");
        tuSo = scanner.nextInt();
        System.out.print("Nhập mẫu số: ");
        mauSo = scanner.nextInt();
    }

    public void output() {
        long x = tuSo / gcd(tuSo, mauSo);
        long y = mauSo / gcd(tuSo, mauSo);
        System.out.println(x + "/" + y);
    }

    public static void main(String[] args) {
        PhanSo ps1 = new PhanSo();
        ps1.nhap();

        PhanSo ps2 = new PhanSo();
        ps2.nhap();

        PhanSo tong = ps1.cong(ps2).reduce(ps2);
        PhanSo hieu = ps1.tru(ps2).reduce(ps2);
        PhanSo tich = ps1.nhan(ps2).reduce(ps2);
        PhanSo thuong = ps1.chia(ps2).reduce(ps2);

        tong.output();
        hieu.output();
        tich.output();

        if (thuong != null) {
            thuong.output();
        } else {
            System.out.println("Cannot divide by zero.");
        }
    }
}
Editor is loading...