package multiple;
public class Rational {
public int numerator,denominator;
public int gcd (int a,int b) {
if (b==0) return a;
else return gcd (b,a%b);
}
public Rational (int n,int d) {
int c = this.gcd (n,d);
n/= c; d/=c;
numerator =n;
denominator = d;
}
public Rational () {
}
public void add (int a,int b) {
int x1 = numerator,x2 = denominator;
x1 += a;x2 +=b;
int d = this.gcd (x1,x2);
x1 /= d;
x2/=d;
numerator = x1;
denominator = x2;
}
public void substract (int a,int b) {
int x1 = numerator,x2 = denominator;
x1 -= a;x2 -=b;
int d = this.gcd (x1,x2);
x1 /= d;
x2/=d;
numerator = x1;
denominator = x2;
}
public void multiple (int a,int b) {
int x1 = numerator,x2 = denominator;
x1 += a;x2 +=b;
int d = this.gcd (x1,x2);
x1 /= d;
x2/=d;
numerator = x1;
denominator = x2;
}
public void divide (int a,int b) {
int x1 = numerator,x2 = denominator;
x1 += a;x2 +=b;
int d = this.gcd (x1,x2);
x1 /= d;
x2/=d;
numerator = x1;
denominator = x2;
}
public String toString() {
return String.format("%d / %d", numerator, denominator);
}
public String toStringFloat() {
float res = (float)numerator/(float)denominator;
return String.format("%f",res);
}
}
package multiple;
public class RationalTest {
public static void main (String[] args) {
Rational num = new Rational (2,4);
System.out.printf ("%d\n",num.numerator);
System.out.println ("num.denominator");
System.out.printf ("%s\n",num.toString());
System.out.printf ("%s\n",num.toStringFloat());
}
}