java 程序丢过去(不好看见谅)
public class Huanfang {
public static boolean noCollision(int[] array){
boolean[] indicator = new boolean[8];
for(int i: array){
if(i == 0)
continue;
if(indicator[i - 1])
return false;
indicator[i - 1] = true;
}
return true;
}
public static void checkArray(int[] array) {
if(array[0] + array[1] + array[2] == array[2]+array[4]+array[7] &&
array[0] + array[3] + array[5] == array[5] + array[6] + array[7] &&
array[0] + array[1] + array[2] == array[0] + array[3] + array[5]){
System.out.println("k = " + (array[0] + array[1] + array[2]));
System.out.println(array[0] + "\t" + array[1] + "\t" + array[2]);
System.out.println(array[3] + "\t" + " " + "\t" + array[4]);
System.out.println(array[5] + "\t" + array[6] + "\t" + array[7]);
System.out.println("------------------------------------------");
}else{
}
}
public static void main(String[] args) {
int[] values = new int[8];
// loop over the smallest element of corner
for(values[0] = 1; values[0] <=8; values[0]++){
// case 1, largest at tr
for(values[2] = 8; values[2] >= values[0]+3; values[2]--){
for(values[1] = 1; values[1] <= 8; values[1]++ ){
if(!noCollision(values)){
continue;
}
for(values[3] = 1; values[3] <= 8; values[3]++ ){
if(!noCollision(values)){
continue;
}
for(values[4] = 1; values[4] <= 8; values[4]++ ){
if(!noCollision(values)){
continue;
}
for(values[5] = values[0] + 1; values[5] < values[2]; values[5]++ ){
if(!noCollision(values)){
continue;
}
for(values[6] = 1; values[6] <= 8; values[6]++ ){
if(!noCollision(values)){
continue;
}
for(values[7] = values[0] + 1; values[7] < values[2]; values[7]++ ){
if(!noCollision(values)){
continue;
}
checkArray(values);
}
values[7] = 0;
}
values[6] = 0;
}
values[5] = 0;
}
values[4] = 0;
}
values[3] = 0;
}
values[1] = 0;
}
values[2] = 0;
// case 2, largest at br
for(values[7] = 8; values[7] >= values[0]+3; values[7]--){
for(values[1] = 1; values[1] <= 8; values[1]++ ){
if(!noCollision(values)){
continue;
}
for(values[3] = 1; values[3] <= 8; values[3]++ ){
if(!noCollision(values)){
continue;
}
for(values[4] = 1; values[4] <= 8; values[4]++ ){
if(!noCollision(values)){
continue;
}
for(values[5] = values[0] + 1; values[5] < values[7]; values[5]++ ){
if(!noCollision(values)){
continue;
}
for(values[6] = 1; values[6] <= 8; values[6]++ ){
if(!noCollision(values)){
continue;
}
for(values[2] = values[0] + 1; values[2] < values[7]; values[2]++ ){
if(!noCollision(values)){
continue;
}
checkArray(values);
}
values[2] = 0;
}
values[6] = 0;
}
values[5] = 0;
}
values[4] = 0;
}
values[3] = 0;
}
values[1] = 0;
}
}
}
}