⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queen.java

📁 n皇后问题
💻 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 + -