diff --git a/exercises/practice/complex-numbers/.meta/src/reference/java/ComplexNumber.java b/exercises/practice/complex-numbers/.meta/src/reference/java/ComplexNumber.java index 3bf393ba0..66ef89160 100644 --- a/exercises/practice/complex-numbers/.meta/src/reference/java/ComplexNumber.java +++ b/exercises/practice/complex-numbers/.meta/src/reference/java/ComplexNumber.java @@ -1,7 +1,6 @@ final class ComplexNumber { private final double real; - private final double imaginary; ComplexNumber(double real, double imaginary) { @@ -32,7 +31,10 @@ ComplexNumber subtract(ComplexNumber other) { } ComplexNumber divide(ComplexNumber other) { - return this.multiply(other.conjugate()).divide(Math.pow(other.abs(), 2)); + double divisor = Math.pow(other.real, 2) + Math.pow(other.imaginary, 2); + return new ComplexNumber( + (real * other.real + imaginary * other.imaginary) / divisor, + (imaginary * other.real - real * other.imaginary) / divisor); } double abs() { @@ -44,14 +46,7 @@ ComplexNumber conjugate() { } ComplexNumber exponentialOf() { - return new ComplexNumber(Math.cos(imaginary), Math.sin(imaginary)).multiply(Math.exp(real)); + return new ComplexNumber(Math.exp(real) * Math.cos(imaginary), Math.exp(real) * Math.sin(imaginary)); } - private ComplexNumber divide(double factor) { - return new ComplexNumber(real / factor, imaginary / factor); - } - - private ComplexNumber multiply(double factor) { - return new ComplexNumber(factor * real, factor * imaginary); - } } diff --git a/exercises/practice/complex-numbers/src/main/java/ComplexNumber.java b/exercises/practice/complex-numbers/src/main/java/ComplexNumber.java index 6a47ada17..0eb95f779 100644 --- a/exercises/practice/complex-numbers/src/main/java/ComplexNumber.java +++ b/exercises/practice/complex-numbers/src/main/java/ComplexNumber.java @@ -28,18 +28,10 @@ ComplexNumber multiply(ComplexNumber other) { throw new UnsupportedOperationException("Delete this statement and write your own implementation."); } - ComplexNumber multiply(double factor) { - throw new UnsupportedOperationException("Delete this statement and write your own implementation."); - } - ComplexNumber divide(ComplexNumber other) { throw new UnsupportedOperationException("Delete this statement and write your own implementation."); } - ComplexNumber divide(double divisor) { - throw new UnsupportedOperationException("Delete this statement and write your own implementation."); - } - ComplexNumber conjugate() { throw new UnsupportedOperationException("Delete this statement and write your own implementation."); } @@ -47,5 +39,4 @@ ComplexNumber conjugate() { ComplexNumber exponentialOf() { throw new UnsupportedOperationException("Delete this statement and write your own implementation."); } - } \ No newline at end of file