我是Java的新手,我需要编写一个算法来查找与数字列表中给定总数匹配的数字集。
您需要从一个数字列表中获得一个号码。
总和:10
列表:3 6 7 5 2 8 4
您还被告知在总和中必须使用多少个数字。
数:3
结果需要在列表中包含相同数字的重复,如下所示:
结果:
3 + 3 + 4 = 10
3 + 5 + 3 = 10
4 + 4 + 2 = 10
Total,List&计数值可以更改,因此算法需要允许变量值。
限制: 列表中最多可以有100个整数。 列表中的数字可以在1到100之间变化。 最大总和为1000 最大数量为25 所有整数都是正值。
以下代码有效,但不适合重复数字;
N = 10;
M = 3;
Input = "7 3 6 7 5 2 8 4";
String[] items = Input.split(" ");
for (int i = 0; i < items.length; i++) {
for (int j = i + 1; j < items.length; j++) {
for (int k = j + 1; k < items.length; k++) {
if (Integer.parseInt(items[i]) + Integer.parseInt(items[j]) + Integer.parseInt(items[k]) == N) {
System.out.println(items[i] + " + " + items[j] + " + " + items[k] +" = " + N);
}
}
}
}
提前感谢您的帮助,
的Darren