引用来自“shizongger”的评论
傻逼,把这道题的求解算法写出来http://bbs.csdn.net/topics/392006543,写不出来,老子楼下再骂一次傻逼,如果写出的时间复杂度比我少,我让你骂回。
楼主确实有点自大,但骂人也不好,我看了地址里的题,并不能看java技术,更多是我们大一才学java时候的考逻辑。地址里楼主的穷举法可以优化,只用写4个for,因为左边的数一确实,又边的数也就确定,然后用if判断来减少循环次数:
int a,b,c,d,e,f,g,h;
for(a = 1; a < 9; a++) {
b = 9-a;
if (b >0 && b !=a) {
for (c = 1; c < 9; c++) {
if(c != a && c != b) {
d = c - 1;
if (d >0 && d !=a && d !=b && d !=c) {
for (e =1; e < 9; e++) {
if (e != a && e != b && e != c && e!=d) {
f = 7-e;
if (f > 0 && f !=a && f !=b && f!=c && f!=d && f!=e){
for (g = 1; g<9; g++) {
if (g != a && g != b && g!=c && g != d && g !=e && g !=f) {
h = g-2;
if (h >0 && h !=a && h!=b && h!=c && h!=d && h!=e && h!=f && h!=g) {
System.out.println(a+","+b+","+c+","+d+","+e+","+f+","+g+","+h);
}
}
}
}
}
}
}
}
}
}
}