题目描述:
将1–8这八个整数放在正方体的八个顶点上,要求相对的两面上四个数之和相等。求所有放法。
package TraceBack;
public class 正方体的八个顶点 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int data[]={1,2,3,4,5,6,7,8};
正方体的八个顶点 test=new 正方体的八个顶点();
test.permutation(data, 0);
}
public void permutation(int[] data,int index)
{
if(index==data.length-1)
{
if(data[0]+data[1]+data[2]+data[3]==data[4]+data[5]+data[6]+data[7]
&&data[0]+data[2]+data[4]+data[6]==data[1]+data[3]+data[5]+data[7]
&&data[0]+data[1]+data[4]+data[5]==data[2]+data[3]+data[6]+data[7])
{
for(int i=0;i<data.length;i++)
{
System.out.print(""+data[i]+" ,");
}
System.out.println();
}
}
for(int i=index;i<data.length;i++)
{
swap(data,index,i);
permutation(data,index+1);
swap(data,index,i);
}
}
public void swap(int []data,int index,int i)
{
int temp=data[index];
data[index]=data[i];
data[i]=temp;
}
}