resolve.java
来自「这是JAVA编写的八皇后问题 太牛了 你一定会有所收获 其中还有详尽的注释 这个」· Java 代码 · 共 43 行
JAVA
43 行
package package1;
import javax.swing.JOptionPane;
public class Resolve {
static int count=0;
static int N;
public static Queen[] setQueen(Queen[] q,int i){
if(i>N-1){
printQueen(q);
count++;
return q;
}
for(int j=0;j<N;j++){ //用j来控制列
q[i]=new Queen(i,j);
if(q[i].isFine(q)) //判断(i,j)坐标的这个数组元素是否能成为皇后的点
if(setQueen(q,i+1)==null)
continue;
}
return null;
}
public static void printQueen(Queen[]q){ //打印出符合条件的坐标
for(int i=0;i<N;i++){
System.out.print("( "+i+" , "+q[i].getY()+" )");
}
System.out.println();
}
public static void main(String[] args){
String str = JOptionPane.showInputDialog(null,"please enter the number of Queens","N Queens",
JOptionPane.QUESTION_MESSAGE);
N = Integer.parseInt(str);
Queen []q = new Queen[N];
setQueen(q,0);
System.out.println("解的总数为"+count);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?