Last active
October 17, 2023 06:00
-
-
Save rebekah/9baefa64f3143e5d923cd779a82ed102 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Rational{ | |
private int numerator; | |
private int denominator; | |
int getNumerator() { | |
return numerator; | |
} | |
int getDenominator() { | |
return denominator; | |
} | |
Rational(int numerator, int denominator){ | |
int gcd = gcdByEuclidsAlgorithm(numerator, denominator); | |
this.numerator = numerator / gcd; | |
this.denominator = denominator / gcd; | |
} | |
Rational(int numerator){ | |
this(numerator, 1); | |
} | |
Rational(){ | |
this(1, 1); | |
} | |
public static void main(String[] args){ | |
Rational myRational = new Rational(20, 30); | |
myRational.printRational(""); | |
} | |
String printRational(String prefix){ | |
String rationalString = String.format("%s%d/%d", prefix, numerator, denominator); | |
System.out.println(rationalString); | |
return rationalString; | |
} | |
void negate(){ | |
numerator = -1 * numerator; | |
} | |
void invert(){ | |
int newDenominator = denominator; | |
denominator = numerator; | |
numerator = newDenominator; | |
} | |
double toDouble(){ | |
double numeratorDouble = numerator; | |
double denominatorDouble = denominator; | |
double fraction = numeratorDouble/denominatorDouble; | |
return fraction; | |
} | |
static int gcdByEuclidsAlgorithm(int n1, int n2) { | |
if (n2 == 0) { | |
return n1; | |
} | |
return gcdByEuclidsAlgorithm(n2, n1 % n2); | |
} | |
Rational addFraction(Rational fraction2){ | |
int numerator1 = this.numerator * fraction2.denominator; | |
int numerator2 = fraction2.numerator * this.denominator; | |
int denominator = this.denominator * fraction2.denominator; | |
int newNumerator = numerator1 + numerator2; | |
int newDenominator = denominator; | |
return new Rational(newNumerator, newDenominator); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment