thesonpb

Fraction

Sep 16th, 2020 (edited)
485
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.47 KB | None | 0 0
  1. public class Fraction {
  2.     private int numerator;
  3.     private int denominator;
  4.  
  5.     public void setNumerator(int numerator) {
  6.         this.numerator = numerator;
  7.     }
  8.  
  9.     public void setDenominator(int denominator) {
  10.         if (denominator != 0) {
  11.             this.denominator = denominator;
  12.         }
  13.     }
  14.  
  15.     public int getNumerator() {
  16.         return numerator;
  17.     }
  18.  
  19.     public int getDenominator() {
  20.         return denominator;
  21.     }
  22.  
  23.     /**
  24.      * constructor 1.
  25.      */
  26.     Fraction() {
  27.         this.denominator = 1;
  28.     }
  29.  
  30.     /**
  31.      * constructor 2.
  32.      *
  33.      * @param numerator   gia tri khoi tao cua tu so.
  34.      * @param denominator gia tri khoi tao cua mau so.
  35.      */
  36.     Fraction(int numerator, int denominator) {
  37.         if (denominator != 0) {
  38.             this.numerator = numerator;
  39.             this.denominator = denominator;
  40.         }
  41.     }
  42.  
  43.     /**
  44.      * ham rut gon phan so.
  45.      *
  46.      * @return tra ve gia tri cua phan so do sau khi duoc rut gon.
  47.      */
  48.     Fraction reduce() {
  49.         int a = numerator;
  50.         int b = denominator;
  51.         while (a != b) {
  52.             if (a > b) {
  53.                 a = a - b;
  54.             } else {
  55.                 b = b - a;
  56.             }
  57.         }
  58.         numerator = numerator / a;
  59.         denominator = denominator / a;
  60.         return this;
  61.     }
  62.  
  63.     /**
  64.      * ham tinh tong cua phan so voi phan so n.
  65.      *
  66.      * @param n phan so n.
  67.      * @return tra ve gia tri tong cua phan so voi phan so n.
  68.      */
  69.     Fraction add(Fraction n) {
  70.         numerator = numerator * n.denominator + denominator * n.numerator;
  71.         denominator = denominator * n.denominator;
  72.         return this;
  73.     }
  74.  
  75.     /**
  76.      * ham tinh hieu cua phan so voi phan so n.
  77.      *
  78.      * @param n phan so n.
  79.      * @return tra ve gia tri hieu cua phan so voi phan so n.
  80.      */
  81.     Fraction subtract(Fraction n) {
  82.         numerator = numerator * n.denominator - denominator * n.numerator;
  83.         denominator = denominator * n.denominator;
  84.         return this;
  85.     }
  86.  
  87.     /**
  88.      * ham tinh tich cua phan so voi phan so n.
  89.      *
  90.      * @param n phan so n.
  91.      * @return tra ve gia tri tich cua phan so voi phan so n.
  92.      */
  93.     Fraction multiply(Fraction n) {
  94.         numerator = numerator * n.numerator;
  95.         denominator = denominator * n.denominator;
  96.         return this;
  97.     }
  98.  
  99.     /**
  100.      * ham tinh thuong cua phan so voi phan so n.
  101.      *
  102.      * @param n phan so n.
  103.      * @return tra ve gia tri thuong cua phan so voi phan so n.
  104.      */
  105.     Fraction divide(Fraction n) {
  106.         if (n.numerator == 0) {
  107.             return this;
  108.         } else {
  109.             numerator = numerator * n.denominator;
  110.             denominator = denominator * n.numerator;
  111.             return this;
  112.         }
  113.     }
  114.  
  115.     /**
  116.      * ham so sanh phan so voi phan so hien tai.
  117.      *
  118.      * @param obj phan so de so sanh.
  119.      * @return tra ve true neu obj la Fraction va obj bang phan so hien tai, con lai tra ve false.
  120.      */
  121.     public boolean equals(Object obj) {
  122.         if (obj instanceof Fraction) {
  123.             Fraction other = (Fraction) obj;
  124.             other.reduce();
  125.             this.reduce();
  126.             if (this.getDenominator() == other.getDenominator() && this.getNumerator() == other.getNumerator()) {
  127.                 return true;
  128.             } else {
  129.                 return false;
  130.             }
  131.         } else {
  132.             return false;
  133.         }
  134.  
  135.     }
  136.  
  137. }
  138.  
Advertisement
Add Comment
Please, Sign In to add comment