?? 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 + -