Java 嵌套 for 循环怎么用递归实现?

2017-07-11 09:52:07 +08:00
 codeInfinty
int count=0;
for(int i=0;i<arr.length;i++){
for(int j1=i+1;j1<arr.length;j1++){
for(int j2=j1+1;j2<arr.length;j2++){
for(int j3=j2+1;j3<arr.length;j3++){
for (int j4 = j3+1; j4 < arr.length; j4++) {
count++;
System.out.println(arr[i]+" "+arr[j1]+" "+arr[j2]+" "+arr[j3]+" "+arr[j4]);

}
}
}
}
}
System.out.println(count);
}
13335 次点击
所在节点    Android
30 条回复
stillsilly
2017-07-11 15:38:26 +08:00
搜‘数组 排列组合’
winglight2016
2017-07-11 18:20:02 +08:00
不格式化的代码没法看
pagxir
2017-07-11 18:45:03 +08:00
@qien 你这个,只能得出结果。而 system.out.println 的输出就消失了。
pagxir
2017-07-11 18:49:13 +08:00
结果是 C(4,n)
qien
2017-07-11 18:54:43 +08:00
@pagxir 狗屁不通,跟 system.out.println 有个 jb 关系
先搞清楚什么叫模 n 的剩余类再跟我说话
Lonely
2017-07-11 19:10:16 +08:00
@qien 错了就错了,何必爆粗口?
pagxir
2017-07-11 21:58:36 +08:00
@Lonely 别人不仅智商厉害,口才更是一绝。
pagxir
2017-07-11 22:14:49 +08:00
system.out.println 说的是输出顺序。只考虑总组合数,解法当然可以多变。
pagxir
2017-07-11 22:57:58 +08:00
miao1007
2017-07-11 23:05:21 +08:00
楼主这个是组合排序算法的暴力实现吧,没必要这样搞,真与黑马差距不大了。Groovy 程序设计中,专门讲了用记忆化改善性能,就是你这个的优化版

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/374426

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX