⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fraction.java

📁 Create a problem solver for linear programming
💻 JAVA
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package ro.utils;/** * * @author Doan Chien Thang */public class Fraction {    private int numerator;    private int denominator;    public Fraction(int n, int d) {        try {            if (d == 0)                throw new Exception("Division by zero");            n = (d > 0) ? n : -n;            d = (d > 0) ? d : -d;            this.numerator = n;            this.denominator = d;        } catch (Exception e) {            System.err.println(e.getMessage());        }    }    public Fraction(int n) {        this(n, 1);    }    public Fraction (Fraction f) {        this.numerator = f.numerator;        this.denominator = f.denominator;    }    public static Fraction add(Fraction f, Fraction g) {        int numerator = f.denominator * g.numerator +                f.numerator * g.denominator;        int denominator = f.denominator * g.denominator;        return new Fraction(numerator, denominator).irreductibleForm();    }    public static Fraction substract(Fraction f, Fraction g) {        int numerator = f.numerator * g.denominator -                 f.denominator * g.numerator;        int denominator = f.denominator * g.denominator;        return new Fraction(numerator, denominator).irreductibleForm();    }    public static Fraction multiple(Fraction f, Fraction g) {        return new Fraction(f.numerator * g.numerator,                f.denominator * g.denominator).irreductibleForm();    }    public static Fraction divide(Fraction f, Fraction g) {        return new Fraction(f.numerator * g.denominator,                f.denominator * g.numerator).irreductibleForm();    }    public Fraction absolute() {        if (this.numerator < 0)            return new Fraction(-this.numerator, this.denominator).irreductibleForm();        else            return this;    }    public Fraction getOpposite() {        return new Fraction(-this.numerator, this.denominator).irreductibleForm();    }    public boolean isGreaterThan(Fraction f) {        return (this.numerator * f.denominator >=                this.denominator * f.numerator);    }    public boolean isNegative() {        return this.numerator < 0;    }    public boolean equals(Fraction f) {        return (this.numerator * f.denominator ==                this.denominator * f.numerator);    }    public boolean equals(int i) {        return equals(new Fraction(i, 1));    }    public Fraction irreductibleForm() {        if (this.numerator == 0)            return new Fraction(0);        int n = this.numerator > 0 ? this.numerator : -this.numerator;        int d = this.denominator;        int m;        while (d > 0) {            m = n % d;            n = d;            d = m;        }        if (n != 0)            return new Fraction(this.numerator/n, this.denominator/n);        else            return new Fraction(0);    }    @Override    public String toString() {        if (this.numerator % this.denominator == 0)            return new Integer(this.numerator / this.denominator).toString();        else            return (this.numerator + "/" + this.denominator);    }    public static void main(String[] args) {        Fraction f = new Fraction(120, 36);        System.out.println(f.irreductibleForm());    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -