📄 queens8.java
字号:
public class queens8 {
static char [][]q=new char[8][8];
static boolean []array1=new boolean[8]; //记录列是否有皇后冲突,true为冲突
static boolean []array2=new boolean[15]; //记录主对角方向是否冲突
static boolean []array3=new boolean[15]; //记录从对角线方向是否冲突
static int num=1;
public static void main(String[] args) {
for(int i=0;i<8;i++)
{
array1[i]=false;
}
for(int i=0;i<15;i++)
{
array2[i]=false;
array3[i]=false;
}
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
q[i][j]='*';
}
}
queens(0);
}
public static void queens(int row)
{
int col=0;
for(;col<8;col++)
{
if(array1[col]==false&&array2[row+col]==false&&array3[7+row-col]==false)//表示位置(row,col)安全,可以放置皇后
{
q[row][col]='@';
array1[col]=true;
array2[row+col]=true;
array3[7+row-col]=true;
if(row<7)
{
queens(row+1);
}
else
{
System.out.println("Solution No."+num+":");
num++;
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
System.out.print(q[i][j]+" ");
}
System.out.println();
}
}
q[row][col]='*';
array1[col]=false;
array2[row+col]=false;
array3[7+row-col]=false;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -