Java 可整除的和对
给定输入数组ar=[1,2,3,4,5],k=5,找到可除和对,这样输入数组中的元素在相加时得到结果k 样本输出-在这种情况下,满足标准的三对为[1,4]、[2,3]和[4,6] 这是我的密码-Java 可整除的和对,java,Java,给定输入数组ar=[1,2,3,4,5],k=5,找到可除和对,这样输入数组中的元素在相加时得到结果k 样本输出-在这种情况下,满足标准的三对为[1,4]、[2,3]和[4,6] 这是我的密码- public class DivisibleSumPairs { public static void main(String[] args) { int[] inputArr = new int[] {1,2,3,4,5,6}; List<Integer&
public class DivisibleSumPairs {
public static void main(String[] args) {
int[] inputArr = new int[] {1,2,3,4,5,6};
List<Integer> output = divisibleSumPairs(inputArr, 5);
System.out.println(Arrays.toString(output.toArray()));
}
public static List<Integer> divisibleSumPairs(int[] inputArr, int input) {
List<Integer> output = null;
List<Integer> outputLst = new ArrayList<Integer>();
for (int i = 0; i < inputArr.length; i++) {
for (int j = 1; j < inputArr.length; j++) {
if ((inputArr[i] + inputArr[j]) % input == 0) {
output = new ArrayList<Integer>(2);
output.add(inputArr[i]);
output.add(inputArr[j]);
outputLst.addAll(output);
}
}
}
return outputLst;
}
}
我的代码的输出结果是-[1,4,2,3,3,2,4,6,5,5,6,4],而我想将其分组为具有两个元素的子数组-[1,4]、[2,3]和[4,6]。关于如何实现这一点的任何提示。要实现您想要的输出,您需要列表而不是列表。因此,应替换以下行:
List<Integer> outputLst = new ArrayList<Integer>();
与:
我刚刚意识到,由于逻辑错误,您还需要更新嵌套for循环。发件人:
for (int j = 1; j < inputArr.length; j++)
致:
您可以看到工作代码。您希望outputLst.addAlloutput;怎么办?
outputLst.addAll(output);
outputLst.add(output);
for (int j = 1; j < inputArr.length; j++)
for (int j = i+1; j < inputArr.length; j++)