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

📄 resolve.java

📁 这是JAVA编写的八皇后问题 太牛了 你一定会有所收获 其中还有详尽的注释 这个程序是用了递归的算法
💻 JAVA
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -