gpt4 book ai didi

algorithm - 唐叶算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:39:52 24 4
gpt4 key购买 nike

我在运行我的程序时不断出现这些错误,有人能找出错误吗?我没有使用递归的经验,我可能搞砸了基本情况。我的测试包含两个相同长度的数字,我的目标是在不使用内置类的情况下将两个大数字相乘。 add 方法只接受两个数字字符串并将它们相加,我检查过,无论数字有多大,它都有效。

Error NumberFormatException: For input string: "" Integer.parseInt(Integer.java:592)

public static String mu (String value1, String value2){

int length1 = value1.length();
int length2 = value2.length();

//If one value has more digits than the other, add zeroes to the front...



int temp1;
int temp2;
int multiply;

if (length1==1 || length2 ==1){
temp1 = Integer.parseInt(value1);
temp2 = Integer.parseInt(value2);
multiply = temp1*temp2;
return multiply +"" ;
}else if (length1 ==0 || length2 ==0){
return "";
}



int firstHalf = length1/2;
int secondHalf = length1 - firstHalf;

String value1First = value1.substring(0, firstHalf);
String value1Second = value1.substring(firstHalf, secondHalf);


String value2First = value2.substring(0, firstHalf);
String value2Second = value2.substring(firstHalf, secondHalf);

String ac = mu (value1First, value2First);
String ad = mu (value1First, value2Second);
String bc = mu(value1Second, value2First);
String bd = mu(value1Second, value2Second);

String zeroesToAdd= null;
String zeroesToAdd2 = null;
for (int i=0; i<length1; i++){
zeroesToAdd = "0"+ zeroesToAdd;
}
for (int i=0; i<length1/2; i++){
zeroesToAdd2 = "0"+ zeroesToAdd2;
}

String firstPart = ac + zeroesToAdd;
String secondPart = (add(ad,bc))+zeroesToAdd2;
String thirdPart = bd;

String add1 = add(firstPart, secondPart);
String add2;




return add(add1, thirdPart);
}

最佳答案

Error NumberFormatException: For input string: "" Integer.parseInt(Integer.java:592)

是代码引起的

Integer.parseInt(value1)  or
Integer.parseInt(value2)

您可能想尝试为 str 长度 (1,1) (1,0) (0,1) (0,0) 的组合添加更多情况。以下代码可能会有所帮助!

if (length1==1 && length2 ==1){
temp1 = Integer.parseInt(value1);
temp2 = Integer.parseInt(value2);
multiply = temp1*temp2;
return multiply +"" ;
}else if (length1 ==0 && length2 ==0){
return "";
}
else if (length1 ==0 && length2 ==1){
return value2;
}
else if (length1 ==1 && length2 ==0){
return value1;
}

希望对您有所帮助!

关于algorithm - 唐叶算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44876587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com