📄 queen.java
字号:
public class Queen {
int size;
int resultCount;
public void compute ( int size ) {
this.size = size;
resultCount = 0;
int data[] = new int[size];
int count; // пܵ
int i,j;
// пܵĸ
count = 1;
for ( i=0 ; i<size ; i++ ) {
count = count * size;
}
// ÿһܵ
for ( i=0 ; i<count ; i++ ) {
// µϻʺİڷλã 8 ʾ
// ˴Ż
int temp = i;
for ( j=0 ; j<size ; j++ ) {
data [j] = temp % size;
temp = temp / size;
}
// ǷУԣ
if ( test(data) )
output( data );
}
}
/*
* ʺǷ
*
*/
public boolean test( int[] data ) {
int i,j;
for ( i=0 ; i<size ; i++ ) {
for ( j=i+1 ; j<size ; j++ ) {
// Ƿͬһ
if ( data == data[j] )
return false;
// Ƿһб
if ( (data+i) == (data[j]+j) )
return false;
// Ƿһб
if ( (data-i) == (data[j]-j) )
return false;
}
}
return true;
}
/*
* ij»ʺ
*
*/
public void output ( int[] data ) {
int i;
System.out.print ( ++resultCount + ": " );
for ( i=0 ; i<size ; i++ ) {
System.out.print ( "(" + i + "," + data + ") " );
}
System.out.println ();
}
public static void main(String args[]) {
(new Queen()).compute( 8 );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -