📄 queen.java
字号:
class queen_8{
private boolean cols[];
private boolean ldiag[];
private boolean rdiag[];
int pos[];
int cntall;
int init( int n )
{
cntall = 0;
cols = new boolean[n];
ldiag = new boolean[2*n+2];
rdiag = new boolean[2*n+2];
pos = new int[n];
return 0;
}
queen_8(){
init( 8 );
}
void solvequeen(){
for( int i = 0; i < 8; i++)
tryQueen( 0 , i );
}
int print_queens()
{
cntall++;
System.out.println( "Solution No . " + cntall + " : ");
for( int i = 0 ; i < 8 ; i++)
{
System.out.print( "(" );
for( int j = 0 ; j <7 ; j++)
if( j == pos[i] ) System.out.print( "Q ");
else System.out.print( "* ");
if( pos[i] ==7 ) System.out.println( "Q)");
else System.out.println( "*)");
}
System.out.println();
return 0;
}
private int tryQueen( int cnt , int trycol ){
if( cnt > 7 )
{
if( trycol == 0 ) print_queens();
return 0;
}
if( cols[ trycol ] == true ) return 0;
if( ldiag[trycol+cnt] == true ) return 0;
if( rdiag[10-trycol+cnt] == true ) return 0;
cols[ trycol ] = true;
ldiag[trycol+cnt] = true;
rdiag[10-trycol+cnt] = true;
pos[ cnt ] = trycol;
for( int i = 0; i < 8; i++) tryQueen( cnt+1 , i );
cols[ trycol ] = false;
ldiag[trycol+cnt] = false;
rdiag[10-trycol+cnt] = false;
return 0;
}
}
public class queen{
public static void main(String[] args){
queen_8 Q;
Q = new queen_8();
Q.solvequeen();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -