📄 fraction.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 + -