java从for循环到递归寻找组合
如果 if groupSize=3, n=6 将打印,我如何将此 for 循环更改为递归 123 124 125 126 134 135 136 145 146 156 234 235 236 245 246 第345章 第346章 第356章 第456章
public static void printCombinations(int groupSize, int n){
if (groupSize <=n && groupSize>0 && n>0){
for (int i=1; i<=n; i++){
for (int j=1; j<=i-1; j++){
for (int k=1; k<=j-1; k++){
int first = k;
int second = j;
int third = i;
if (i!=j && i!=k && j!=k){
System.out.println(first +" " + second +" "+ third);
}
}
}
}
}
}
how can i change this for loop to recursive in the event that if groupSize=3, n=6 will print
123
124
125
126
134
135
136
145
146
156
234
235
236
245
246
345
346
356
456
public static void printCombinations(int groupSize, int n){
if (groupSize <=n && groupSize>0 && n>0){
for (int i=1; i<=n; i++){
for (int j=1; j<=i-1; j++){
for (int k=1; k<=j-1; k++){
int first = k;
int second = j;
int third = i;
if (i!=j && i!=k && j!=k){
System.out.println(first +" " + second +" "+ third);
}
}
}
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
可能边缘会比较粗糙;我刚刚学习Java。
我在这里找到了一种连接数组的方法: How can I concatenate 两个数组在 Java 中?
也是一种打印组合生成器生成的字符串数组的方法。
Probably going to be rough around the edges; I'm just learning Java.
I included a method to concatenate arrays that I found here: How can I concatenate two arrays in Java?
Also a method to print your string array generated with the combo maker.
创建一个方法,该方法将生成具有 x 位数字的特定值的后缀,并返回所有可能后缀的列表。可能类似于:
该方法将从
prefix + 1
迭代到maxDigitValue
。然后它会使用迭代值和 suffixSize - 1 来调用自身。它将迭代附加到生成的每个后缀以创建要返回的列表。Create a method that will produce the suffix to a particular value with x digits and return a list of all possible suffixes. Might be something like:
The method would iterate from
prefix + 1
tomaxDigitValue
. It would then call itself with the iterate value andsuffixSize - 1
. It would append the iterate to each suffix generated to create the list to return.