From 903cdbf4a5b2db3ba38bfb6064ca61480804844a Mon Sep 17 00:00:00 2001 From: Jagdish Prajapati Date: Sat, 2 Nov 2024 18:24:40 +0530 Subject: [PATCH 1/3] Remove multiply and divide methods accepting double from ComplexNumber exercise --- .../src/reference/java/ComplexNumber.java | 18 ++++++------------ .../src/main/java/ComplexNumber.java | 9 --------- 2 files changed, 6 insertions(+), 21 deletions(-) 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..274ff3754 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,6 @@ ComplexNumber conjugate() { } ComplexNumber exponentialOf() { - return new ComplexNumber(Math.cos(imaginary), Math.sin(imaginary)).multiply(Math.exp(real)); - } - - private ComplexNumber divide(double factor) { - return new ComplexNumber(real / factor, imaginary / factor); - } - - private ComplexNumber multiply(double factor) { - return new ComplexNumber(factor * real, factor * imaginary); + return new ComplexNumber(Math.exp(real) * Math.cos(imaginary), Math.exp(real) * Math.sin(imaginary)); } -} +} \ No newline at end of file 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 From 67924cf4bd4ac40b25debe4961f18a725f3b3b63 Mon Sep 17 00:00:00 2001 From: Jagdish Prajapati Date: Sat, 2 Nov 2024 19:02:19 +0530 Subject: [PATCH 2/3] Editing reference answer to fit the CheckStyle error --- .../complex-numbers/.meta/src/reference/java/ComplexNumber.java | 1 + 1 file changed, 1 insertion(+) 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 274ff3754..cf4835316 100644 --- a/exercises/practice/complex-numbers/.meta/src/reference/java/ComplexNumber.java +++ b/exercises/practice/complex-numbers/.meta/src/reference/java/ComplexNumber.java @@ -48,4 +48,5 @@ ComplexNumber conjugate() { ComplexNumber exponentialOf() { return new ComplexNumber(Math.exp(real) * Math.cos(imaginary), Math.exp(real) * Math.sin(imaginary)); } + } \ No newline at end of file From aff1749123c8f2829fbd23e81d786d2162180f04 Mon Sep 17 00:00:00 2001 From: Jagdish Prajapati Date: Sat, 2 Nov 2024 19:05:24 +0530 Subject: [PATCH 3/3] Editing reference answer to fix CheckStyle error --- .../.meta/src/reference/java/ComplexNumber.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 cf4835316..66ef89160 100644 --- a/exercises/practice/complex-numbers/.meta/src/reference/java/ComplexNumber.java +++ b/exercises/practice/complex-numbers/.meta/src/reference/java/ComplexNumber.java @@ -48,5 +48,5 @@ ComplexNumber conjugate() { ComplexNumber exponentialOf() { return new ComplexNumber(Math.exp(real) * Math.cos(imaginary), Math.exp(real) * Math.sin(imaginary)); } - -} \ No newline at end of file + +}