Finishing Rational Class.
This commit is contained in:
@@ -54,27 +54,27 @@ public class Rational {
|
|||||||
// TODO: Instance method - this - other
|
// TODO: Instance method - this - other
|
||||||
// Formula: a/b - c/d = (a*d - c*b) / (b*d)
|
// Formula: a/b - c/d = (a*d - c*b) / (b*d)
|
||||||
public Rational subtract(Rational other) {
|
public Rational subtract(Rational other) {
|
||||||
// YOUR CODE HERE
|
int newNumerator = this.numerator * other.denominator - other.numerator * this.denominator;
|
||||||
return null; // Remove this line when implemented
|
int newDenominator = this.denominator * other.denominator;
|
||||||
|
return new Rational(newNumerator, newDenominator);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Static method - r1 - r2
|
// TODO: Static method - r1 - r2
|
||||||
public static Rational subtract(Rational r1, Rational r2) {
|
public static Rational subtract(Rational r1, Rational r2) {
|
||||||
// YOUR CODE HERE
|
return r1.subtract(r2);
|
||||||
return null; // Remove this line when implemented
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Instance method - this * other
|
// TODO: Instance method - this * other
|
||||||
// Formula: (a/b) * (c/d) = (a*c) / (b*d)
|
// Formula: (a/b) * (c/d) = (a*c) / (b*d)
|
||||||
public Rational multiply(Rational other) {
|
public Rational multiply(Rational other) {
|
||||||
// YOUR CODE HERE
|
int newNumerator = this.numerator * other.numerator;
|
||||||
return null; // Remove this line when implemented
|
int newDenominator = this.denominator * other.denominator;
|
||||||
|
return new Rational(newNumerator, newDenominator);
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Static method - r1 * r2
|
// TODO: Static method - r1 * r2
|
||||||
public static Rational multiply(Rational r1, Rational r2) {
|
public static Rational multiply(Rational r1, Rational r2) {
|
||||||
// YOUR CODE HERE
|
return r1.multiply(r2);
|
||||||
return null; // Remove this line when implemented
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Instance method - this / other
|
// TODO: Instance method - this / other
|
||||||
@@ -83,13 +83,17 @@ public class Rational {
|
|||||||
// YOUR CODE HERE
|
// YOUR CODE HERE
|
||||||
// HINT: Division is multiplication by reciprocal
|
// HINT: Division is multiplication by reciprocal
|
||||||
// Don't forget to check if other.numerator is zero!
|
// Don't forget to check if other.numerator is zero!
|
||||||
return null; // Remove this line when implemented
|
if (other.numerator == 0) {
|
||||||
|
throw new ArithmeticException("Cannot divide by zero.");
|
||||||
|
}
|
||||||
|
Rational otherReciprocal = new Rational(other.denominator, other.numerator);
|
||||||
|
return this.multiply(otherReciprocal);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Static method - r1 / r2
|
// TODO: Static method - r1 / r2
|
||||||
public static Rational divide(Rational r1, Rational r2) {
|
public static Rational divide(Rational r1, Rational r2) {
|
||||||
// YOUR CODE HERE
|
return r1.divide(r2);
|
||||||
return null; // Remove this line when implemented
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// PROVIDED - String representation
|
// PROVIDED - String representation
|
||||||
|
|||||||
Reference in New Issue
Block a user