package com;
public class QueueDemo {
int max=8; //表示最多有几个皇后
int [] arr=new int[max];
static int count=0;
//定义数组arr,保存皇后
public static void main(String[] args) {
QueueDemo queue=new QueueDemo();
queue.check(0);
System.out.println(count);
}
//写方法,将皇后的位置输出
public void print(){
count++;
for(int a:arr)
{
System.out.print(a+" ");
}
System.out.println();
}
//当放置第n个皇后时,检测是否已经和前面的冲突
//n表示第n个皇后
public boolean judge(int n){
for(int i=0;i<n;i++)
{
//判断是否在同一列
//判断是否在同一斜线
if(arr[i]==arr[n]||Math.abs(n-i)==Math.abs(arr[n]-arr[i])){
return false;
}
}
return true;
}
//编写一个方法,放置第n个皇后
public void check(int n){
if(n==max){
print();
return;
}
//依次放入皇后,并判断是否冲突
for(int i=0;i<max;i++){
//先把当前的这个皇后,放到该行的第一列
arr[n]=i;
//判断是否有冲突
if(judge(n)){ //不冲突
//接着放第n+1个皇后,即开始递归
check(n+1);
}
//如果冲突,即将该皇后在本行后移一个位置
}
}
}
八皇后
最新推荐文章于 2022-12-16 21:22:35 发布