resolve.java

来自「这是JAVA编写的八皇后问题 太牛了 你一定会有所收获 其中还有详尽的注释 这个」· Java 代码 · 共 43 行

JAVA
43
字号
package package1;
import javax.swing.JOptionPane;
public class Resolve {
	static int count=0;
	static int N;
	
	public static Queen[] setQueen(Queen[] q,int i){ 
		if(i>N-1){
			printQueen(q);
			count++;
			return q;
		}
		
		for(int j=0;j<N;j++){  //用j来控制列
			q[i]=new Queen(i,j);
			if(q[i].isFine(q)) //判断(i,j)坐标的这个数组元素是否能成为皇后的点
				
				if(setQueen(q,i+1)==null)
				continue;
		}	
			return null;
	}
	
	public static void printQueen(Queen[]q){  //打印出符合条件的坐标
		for(int i=0;i<N;i++){
		  System.out.print("( "+i+" , "+q[i].getY()+" )");
		}
		System.out.println();
	}
	
	public static void main(String[] args){
		 String str = JOptionPane.showInputDialog(null,"please enter the number of Queens","N Queens",
				               JOptionPane.QUESTION_MESSAGE);
		 N = Integer.parseInt(str);
			Queen []q = new Queen[N];
            setQueen(q,0);
            System.out.println("解的总数为"+count);
		   
		
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?