From 01eba3234a0e045c6e265f23ac4a0d0a5ceb7a54 Mon Sep 17 00:00:00 2001 From: Abdulaziz Alaboudi Date: Mon, 30 Apr 2018 14:29:37 -0400 Subject: [PATCH 1/2] Fix the bug caused by negative numbers. --- src/main/java/org/jugbd/marathon/day2/BiggestNumber.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/jugbd/marathon/day2/BiggestNumber.java b/src/main/java/org/jugbd/marathon/day2/BiggestNumber.java index 2b1ccf1..cac8caf 100644 --- a/src/main/java/org/jugbd/marathon/day2/BiggestNumber.java +++ b/src/main/java/org/jugbd/marathon/day2/BiggestNumber.java @@ -8,7 +8,7 @@ public static long findTheNextBiggerNumber(long n) { int ar[] = new int[20]; // long is 64 bit, so max 19 digits can be possible int length = 0, tmp; boolean found = false; - while (n > 0) { + while (n != 0) { ar[length++] = (int) (n % 10); n /= 10; From 3934adef0ee7dc72361d221a738f8c2865ce8293 Mon Sep 17 00:00:00 2001 From: Abdulaziz Alaboudi Date: Mon, 30 Apr 2018 14:30:52 -0400 Subject: [PATCH 2/2] Add a test for the negative number case. --- src/test/java/org/jugbd/marathon/day2/BiggestNumberTest.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/jugbd/marathon/day2/BiggestNumberTest.java b/src/test/java/org/jugbd/marathon/day2/BiggestNumberTest.java index e11dd53..a5e3f40 100644 --- a/src/test/java/org/jugbd/marathon/day2/BiggestNumberTest.java +++ b/src/test/java/org/jugbd/marathon/day2/BiggestNumberTest.java @@ -16,6 +16,7 @@ public void basicTests() { assertEquals(414, BiggestNumber.findTheNextBiggerNumber(144)); assertEquals(-1, BiggestNumber.findTheNextBiggerNumber(111)); assertEquals(-1, BiggestNumber.findTheNextBiggerNumber(531)); - assertEquals(753772, BiggestNumber.findTheNextBiggerNumber(737752)); + assertEquals(752377, BiggestNumber.findTheNextBiggerNumber(737752)); + assertEquals(-213, BiggestNumber.findTheNextBiggerNumber(-231)); } -} \ No newline at end of file +}