Question: I need help fixing this error: Exception in thread main java.lang.NumberFormatException: For input string: under radix 2 at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) at java.base/java.lang.Integer.parseInt(Integer.java:678) at DivideAndConquer.multiply(DivideAndConquer.java:8) at

I need help fixing this error:

Exception in thread "main" java.lang.NumberFormatException: For input string: "" under radix 2 at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67) at java.base/java.lang.Integer.parseInt(Integer.java:678) at DivideAndConquer.multiply(DivideAndConquer.java:8) at DivideAndConquer.multiply(DivideAndConquer.java:22) at DivideAndConquer.multiply(DivideAndConquer.java:23) at DivideAndConquer.multiply(DivideAndConquer.java:23) at DivideAndConquer.multiply(DivideAndConquer.java:21) at DivideAndConquer.main(DivideAndConquer.java:52)

/*******************************************************************************/

My java code:

import java.math.BigInteger;

public class DivideAndConquer {

public static String multiply(String x, String y) {

int n = Math.max(x.length(), y.length());

if (n == 1) {

int xi = Integer.parseInt(x, 2);

int yi = Integer.parseInt(y, 2);

return Integer.toBinaryString(xi * yi);

}

// Split x and y into left and right halves

int k = (n + 1) / 2;

String xl = x.substring(0, n - k);

String xr = x.substring(n - k);

String yl = y.substring(0, n - k);

String yr = y.substring(n - k);

// Recursively compute the three partial products

String p1 = multiply(xl, yl);

String p2 = multiply(xr, yr);

String p3 = multiply(addBinary(xl, xr), addBinary(yl, yr));

// Combine the partial products to get the final result

String t1 = padRight(p1, 2 * k);

String t2 = padRight(subtractBinary(subtractBinary(p3, p1), p2), k);

return addBinary(addBinary(t1, t2), p2);

}

public static String addBinary(String a, String b) {

BigInteger ai = new BigInteger(a, 2);

BigInteger bi = new BigInteger(b, 2);

BigInteger sum = ai.add(bi);

return sum.toString(2);

}

public static String subtractBinary(String a, String b) {

BigInteger ai = new BigInteger(a, 2);

BigInteger bi = new BigInteger(b, 2);

BigInteger diff = ai.subtract(bi);

return diff.toString(2);

}

public static String padRight(String s, int n) {

return String.format("%1$-" + n + "s", s).replace(' ', '0');

}

public static void main(String[] args) {

String x = "1001";

String y = "10010";

String result = multiply(x, y);

System.out.println(x + " * " + y + " = " + result);

}

}

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!