gpt4 book ai didi

java - 如何将两个不同长度的 int 数组相加?

转载 作者:行者123 更新时间:2023-12-01 23:20:45 25 4
gpt4 key购买 nike

我一直在一个 Java 实验室工作,希望我们让用户输入最多 50 位长度的两位数字并将它们相加。除了两个数组的长度不同之外,我已经成功地完成了所有操作。我已经研究这些代码有一段时间了,但我总是觉得不够。任何人都可以查看此代码并提出任何建议吗?谢谢!

int[] number1 = new int[input1.length()];
int[] number2 = new int[input2.length()];
int[] answer = new int[input1.length()];

if(number1.length > number2.length){
number2 = new int[number1.length];
for(int i = 0; i < number2.length - number1.length; i++){
number2[i] = 0;
}
}

if(number2.length > number1.length){
number1 = new int[number2.length];
for(int i = 0; i < number1.length - number2.length; i++){
number1[i] = 0;
}
}

每当我添加 120 和 12 时,它都会说存在数组越界错误。

最佳答案

您需要做的第一件事是将数字放入 int 数组中。通过将字符串拆分为字符数组来做到这一点。然后转换为int数组。然后添加。

String input1 = scanner.nextLine().trim();    <-- get input as String
String input2 = scanner.nextLine().trim();

char[] array1 = input1.toCharArray(); <-- split to char array
char[] array2 = input2.toCharArray();

// convert to int array
int[] intArray1 = new int[array1.length]; <-- declare int array
int[] intArray2 = new int[array2.length];

for (int i = 0; i < array1.length; i++){
intArray1[i] = Integer.parseInt(String.valueOf(array1[i])); <-- convert to int
}
for (int i = 0; i < array2.legnth; i++){
intArray2[i] = Integer.parseInt(String.valueOf(array2[i]));
}

// check which one is larger and add to that one
if (intArray1.length > intArray2.length){
for (int i = 0; i < intArray2.length; i++){
intArray1[i] += intArray2[i]; <-- add values
}
System.out.println(Arrays.toString(intArray1); <-- print largest
} else {
for (int i = 0; i < intArray1.length; i++){
intArray2[i] += intArray1[i];
}
System.out.println(Arrays.toString(intArray2);
}

如果您想打印数字表示形式而不是数组,而不是 System.out.println(),请使用此

StringBuilder sb = new StringBuilder();
for (int i : intArray1){
sb.append(String.valueOf(i));
}
System.out.println(sb.toString());

所以 123 和 12 将打印出 233

关于java - 如何将两个不同长度的 int 数组相加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20666925/

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