Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package rationalnumbers;
- /**
- *
- * @author Youssef
- */
- public class Rational
- {
- private int num;
- private int den;
- public Rational(int num, int den)
- {
- this.num = num;
- if(den!=0)
- {
- this.den = den;
- }
- else
- {
- this.den = 1;
- }
- }
- public Rational(int wholeNumber)
- {
- this.num = wholeNumber;
- this.den = 1;
- }
- public Rational()
- {
- this.num = 0;
- this.den = 1;
- }
- public void set(int num, int den)
- {
- this.num = num;
- if(den!=0)
- {
- this.den = den;
- }
- else
- {
- this.den = 1;
- }
- }
- public int getNum()
- {
- return this.num;
- }
- public int getDen()
- {
- return this.den;
- }
- public void normalize()
- {
- if(this.den<0)
- {
- this.num = this.num * -1;
- this.den = this.den * -1;
- }
- }
- public static int hcf(int num, int den)
- {
- int hcf = 1;
- int temp;
- if(num>den)
- {
- temp = num;
- }
- else
- {
- temp = den;
- }
- for(int i=temp; i>=1; i--)
- {
- if(num%i == 0 && den %i == 0)
- {
- hcf = i;
- break;
- }
- }
- return hcf;
- }
- public static void simplify(Rational r)
- {
- int x = Rational.hcf(r.num,r.den);
- r.num = r.num / x;
- r.den = r.den / x;
- }
- public static Rational add(Rational r1, Rational r2)
- {
- int x = r1.num * r2.den + r1.den * r2.num;
- int y = r1.den * r2.den;
- Rational result = new Rational(x,y);
- Rational.simplify(result);
- return result;
- }
- public static Rational sub(Rational r1, Rational r2)
- {
- int x = r1.num * r2.den - r1.den * r2.num;
- int y = r1.den * r2.den;
- Rational result = new Rational(x,y);
- Rational.simplify(result);
- return result;
- }
- public static Rational multiply(Rational r1, Rational r2)
- {
- int x = r1.num * r2.num;
- int y = r1.den * r2.den;
- Rational result = new Rational(x,y);
- Rational.simplify(result);
- return result;
- }
- public static Rational divide(Rational r1, Rational r2)
- {
- int x = r1.num / r2.num;
- int y = r1.den / r2.den;
- Rational result = new Rational(x,y);
- Rational.simplify(result);
- return result;
- }
- public Rational add(Rational r2)
- {
- int x = this.num * r2.den + this.den * r2.num;
- int y = this.den * r2.den;
- Rational result = new Rational(x,y);
- Rational.simplify(result);
- return result;
- }
- public Rational sub(Rational r2)
- {
- int x = this.num * r2.den - this.den * r2.num;
- int y = this.den * r2.den;
- Rational result = new Rational(x,y);
- Rational.simplify(result);
- return result;
- }
- public Rational multiply(Rational r2)
- {
- int x = this.num * r2.num;
- int y = this.den * r2.den;
- Rational result = new Rational(x,y);
- Rational.simplify(result);
- return result;
- }
- public Rational divide(Rational r2)
- {
- int x = this.num / r2.num;
- int y = this.den / r2.den;
- Rational result = new Rational(x,y);
- Rational.simplify(result);
- return result;
- }
- @Override
- public String toString()
- {
- return (+this.num+"/"+this.den);
- }
- public boolean isEqual(Rational other)
- {
- return (this.num * other.den == this.den * other.num);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement