黑马程序员技术交流社区
标题:
简单幻方的小问题
[打印本页]
作者:
史卜坤
时间:
2012-6-27 20:21
标题:
简单幻方的小问题
今天看了下全排列,然后看到了个题目。用计算机算一下一个简单幻方的小问题,就是一个四边形,四条边共有8个方块,往里面填入1到8,不许重复,并且任意一条边的和相加等于15。编完后用了好长时间改错,终于完成。得意一把。
public class Nine {
void range(int[] a,int i){
if(i==a.length){
if(a[0]+a[1]+a[2]==15&&a[2]+a[3]+a[4]==15&&a[4]+a[5]+a[6]==15&&a[6]+a[7]+a[0]==15)
System.out.println(a[0]+" "+a[1]+" "+a[2]+"\n"+a[7]+" "+a[3]+"\n"+a[6]+" "+a[5]+" "+a[4]+"\n");
return;
}
for(int j=i;j<a.length;j++){
swap(a,i,j);
range(a,i+1);
swap(a,i,j);
}
}
void swap(int[] a,int i,int j){
int t=a[j];
a[j]=a
;
a
=t;
}
public static void main(String[] args) {
int[] a={1,2,3,4,5,6,7,8};
Nine nine=new Nine();
nine.range(a,0);
}
}
作者:
李伟
时间:
2012-6-27 20:59
void swap(int[] a,int i,int j){
int t=a[i];
a[i]=a[j];
a[j]=t;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2