2种球 每个球最多取三个 列出全用JAVA
时间: 2024-09-26 13:18:18 浏览: 28
郁金香种球种植方法.doc
假设你想要创建一个场景,用Java来表示有两样球(比如红球和蓝球),每个球的最大数量限制是三个,并且需要列出所有可能的选择组合。你可以使用递归或者数组的方式来实现这个功能。这里是一个简单的递归解决方案:
```java
public class BallCombination {
public static void main(String[] args) {
List<String> colors = Arrays.asList("红", "蓝");
List<String> combinations = getBallCombinations(colors, 0, new StringBuilder(), 0);
for (String combination : combinations) {
System.out.println(combination);
}
}
// 递归函数,获取指定颜色、当前组合、剩余球数和已选择球数的情况下的所有组合
private static List<String> getBallCombinations(List<String> colorList, int currentIndex, StringBuilder currentCombination, int takenCount) {
if (takenCount == 3 || currentIndex == colorList.size()) { // 如果已选够3个球或没有更多球可选,则结束递归
if (takenCount == 3) {
return Collections.singletonList(currentCombination.toString());
} else {
return Collections.emptyList();
}
}
List<String> combinationsWithoutCurrentColor = getBallCombinations(colorList, currentIndex + 1, currentCombination, takenCount); // 不选当前颜色
List<String> combinationsWithCurrentColor = getBallCombinations(colorList, currentIndex + 1, currentCombination.append("," + colorList.get(currentIndex)), takenCount + 1); // 选当前颜色
return Stream.concat(combinationsWithoutCurrentColor.stream(), combinationsWithCurrentColor.stream()).collect(Collectors.toList()); // 合并结果
}
}
```
运行这段代码,它会打印出所有可能的组合,例如:"红,红,红", "红,红,蓝", "红,蓝,蓝"等。
阅读全文