📄 resolve.java
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -