用java用循环算法找出 n(n>=3)个自然数中取 3 个数的组合
时间: 2024-09-18 12:13:09 浏览: 74
java面试基础
在 Java 中,可以使用嵌套循环和数组来找出从给定的一组自然数(n个数,假设已存储在一个整数数组`numbers[]`中,且n >= 3)中选取3个数的所有组合。这里我们采用“三个数的组合”的概念,意味着每组三个数不考虑顺序。我们可以使用 `combinationsWithRepetition` 函数来实现这个任务:
```java
import java.util.ArrayList;
import java.util.List;
public class CombinationFinder {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5}; // 示例数组,替换为实际的自然数
int n = numbers.length;
findCombinations(numbers, 0, new ArrayList<>());
}
private static void findCombinations(int[] numbers, int start, List<List<Integer>> result) {
if (result.size() == 3 && start + 2 < numbers.length) {
result.add(Arrays.asList(numbers[start], numbers[start + 1], numbers[start + 2]));
return;
}
for (int i = start; i < numbers.length - 2; i++) {
findCombinations(numbers, i + 1, result);
}
}
}
```
在这个代码中,`findCombinations` 方法递归地处理每个可能的起始位置,并将选择的数字添加到结果列表中。当结果达到3个元素并且当前遍历的位置仍小于数组长度减去2时,表明找到了一组完整的组合。
运行此程序后,`result` 列表将包含所有可能的三元组组合。例如,对于 `{1, 2, 3, 4, 5}` 这个数组,结果可能是 `[1, 2, 3]`, `[1, 2, 4]`, `[1, 2, 5]`, ..., `[4, 5, 6]` 等。
阅读全文