diff --git a/.project b/.project index 3cd55b5c..02877ddf 100644 --- a/.project +++ b/.project @@ -14,4 +14,15 @@ org.eclipse.jdt.core.javanature + + + 1730486626683 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + diff --git a/src/com/jwetherell/algorithms/mathematics/Division.java b/src/com/jwetherell/algorithms/mathematics/Division.java index c133f741..bab60e3d 100644 --- a/src/com/jwetherell/algorithms/mathematics/Division.java +++ b/src/com/jwetherell/algorithms/mathematics/Division.java @@ -3,6 +3,9 @@ public class Division { public static final long division(int a, int b) { + if (b == 0) { + throw new IllegalArgumentException("Divisor cannot be zero."); + } long result = ((long) a) / ((long) b); return result; } @@ -10,7 +13,9 @@ public static final long division(int a, int b) { public static final long divisionUsingLoop(int a, int b) { int absA = Math.abs(a); int absB = Math.abs(b); - + if (absB == 0) { + throw new IllegalArgumentException("Divisor cannot be zero."); + } long temp = absA; long result = 0; while (temp >= 0) { @@ -24,7 +29,9 @@ public static final long divisionUsingLoop(int a, int b) { public static final long divisionUsingRecursion(int a, int b) { int absA = Math.abs(a); int absB = Math.abs(b); - + if (absB == 0) { + throw new IllegalArgumentException("Divisor cannot be zero."); + } long result = 1; int diff = absA - absB; if (diff > 0 && diff <= 1) { @@ -40,7 +47,9 @@ public static final long divisionUsingRecursion(int a, int b) { public static final long divisionUsingMultiplication(int a, int b) { int absA = Math.abs(a); int absB = Math.abs(b); - + if (absB == 0) { + throw new IllegalArgumentException("Divisor cannot be zero."); + } int temp = absB; int counter = 0; while (temp <= absA) { @@ -58,7 +67,9 @@ public static final long divisionUsingShift(int a, int b) { int absA = Math.abs(a); int absB = Math.abs(b); int tempA, tempB, counter; - + if (absB == 0) { + throw new IllegalArgumentException("Divisor cannot be zero."); + } long result = 0L; while (absA >= absB) { tempA = absA >> 1; // Right shift "a" @@ -78,6 +89,9 @@ public static final long divisionUsingShift(int a, int b) { public static final long divisionUsingLogs(int a, int b) { long absA = Math.abs(a); long absB = Math.abs(b); + if (absB == 0) { + throw new IllegalArgumentException("Divisor cannot be zero."); + } double logBase10A = Math.log10(absA); double logBase10B = Math.log10(absB); double powOf10 = Math.pow(10, (logBase10A - logBase10B));