好的,我尽可能地剥离了这段代码。我正在寻找的解决方案可能很简单。开始了:
import java.util.Arrays;
public class App {
public static void main(String[] args) {
for (int k = 1; k < 9; k++) {
for (int p = 1; p < 9; p++) {
for (int i = 1; i < 9; i++) {
if (k + p + i == 9) {
System.out.println("The 3 numbers that give the sum of 9 are: " + k + p + i);
}
}
}
}
}
}
我试图找到 3 个数字的所有组合,总和为数字 9。我已经通过 3 个 for 循环完成了此操作,如您在代码中所见,但问题是结果也显示相同的数字,但在不同的顺序。例如:117 和 711。我不想要那个,我只想要相同数字的一种组合。最简单的解决方案是什么?
最佳答案
那么你应该限制你的内部循环。
解决方案: p < 9
应该是 p <= k
和 i < 9
应该是 i <= p
代码:
public static void main(String[] args) {
for (int k = 1; k < 9; k++) {
for (int p = 1; p <= k; p++) {
for (int i = 1; i <= p; i++) {
if (k + p + i == 9) {
System.out.println("The 3 numbers that give the sum of 9 are: " + k + p + i);
}
}
}
}
}
关于Java:消除具有相同数字的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31229970/