-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRational.java
83 lines (79 loc) · 1.91 KB
/
Rational.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
public class Rational{
private int num;
private int den;
public Rational(){
num=0;
den=1;
}
public Rational(int num,int den){
if (den == 0){
this.num=0;
this.den=1;}
else{
this.num=num;
this.den=den;}
}
public int getNum(){
return num;}
public int getDen(){
return den;}
public String toString(){
return "The rational is " + num+"/"+den;
}
public double floatValue(){
return num*1.0/den;
}
public void multiply(Rational rad){
num = num * rad.getNum();
den = den * rad.getDen();}
public void divide(Rational rad){
num = num * rad.getDen();
den = den * rad.getNum();}
public void add(Rational rad){
int numTwo = den*rad.getNum();
num = num*rad.getDen();
den = den * rad.getDen();
num=num+numTwo;
}
public void subtract(Rational rad){
int numTwo = den*rad.getNum();
num = num*rad.getDen();
den = den * rad.getDen();
num=num-numTwo;
}
public int gcd(){
return Stats.gcd(num,den);
}
public void reduce(){
int gcd = this.gcd();
num=num/gcd;
den=den/gcd;}
public static int gcd(int num, int den){
return Stats.gcd(num,den);
}
public int compareTo(Rational rad){
if (this.floatValue()==rad.floatValue()){
return 0;}
else if (this.floatValue()>rad.floatValue()){
return 1;}
else {return -1;}}
public static void main( String[] arg){
Rational one = new Rational(3,2);
Rational two = new Rational(1,2);
/*
System.out.println(one + " or " + one.floatValue());
one.multiply(two);
System.out.println(one + " or " + one.floatValue());
one.divide(two);
System.out.println(one + " or " + one.floatValue());
*//*
System.out.println(one + " or " + one.floatValue());
one.add(two);
System.out.println(one + " or " + one.floatValue());
one.subtract(two);
System.out.println(one + " or " + one.floatValue());
one.reduce();
System.out.println(one + " or " + one.floatValue());
*/
}
}