问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
没有运行结果
我的解答思路和尝试过的方法
提供一个一维数组表示八皇后棋盘,下标表示八皇后棋盘的行,值表示每个皇后在这一行的位置
提供一个遍历数组的方法,提供一个判断皇后位置是否合理的方法。提供一个移动皇后位置的方法,运用递归移动皇后。
我想要达到的结果
遍历所有八皇后解法
public class ba {
private int max=8;
private int[]map=new int[max];
public static void main(String[] args) {
ba b=new ba();
b.fang(0);
}
//定义一个判断是否为在同一列同一水平线的方法
public boolean get(int n){
for (int i=0; i<n; i++) {
if(map[i]==map[n]||Math.abs(map[n]-map[i])==Math.abs(n-i)){
return false;
}
}
return true;
}
//定义一个方法遍历数组
public void list(){
for (int i = 0; i < map.length; i++) {
System.out.print(map[i]+"\t");
}
System.out.println();
}
//定义一个方法来放置皇后
public void fang(int n){//从第n个开始放置
if(n==max){
list();
return ;
}for (int i = 0; i < n; i++) {
map[n]=i;//
if(get(n)){
fang(n+1);
}
}
}
}