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

📄 nqueens.java

📁 算法导论上机作业java实现
💻 JAVA
字号:



public class Nqueens {
	//static int k ;
	static int[] X =  {0,0,0,0,0,0};
	public static int Absolute_value(int i){
		if(i<0)
			return -i;
		else
			return i;
	} 

	public static int Place(int k){
		
		for(int i=0;i<k;i++){
			if(X[i]==X[k] || Absolute_value(X[i]-X[k])==Absolute_value(i-k))
				
				return -1;
				
			else
				return 1;
		}
		
		
		return 0;
		
	}
	public static void Sub_queen(int n){
		 X[0]=1;
		 int k =1;
			 while(k>0){
				 while(X[k]<n&&k<n){
					 if(Place(k)==1){
						 k+=1;
						 X[k]=1;
					 }
					 else
						 X[k]+=1;
				 }
				 k=k-1;
				 X[k]=X[k]+1;
				 if(k==0&&X[0]<=n)
					 k+=1;
			 }
			 
		 
	}
	public static void main(String[] args) {
		//int n;
		//System.out.println("input the number of the queens");
		/*try {
			n = System.in.read();
			System.out.println(n);
			Sub_queen(n);
			for(int i =0;i<n;i++){
				System.out.println("第"+i+1+"行皇后放在第"+X[i]+1+"列处。");
			}
		} catch (IOException e) {
			// TODO 自动生成 catch 块
			e.printStackTrace();
		}*/
		
		Sub_queen(5);
		for(int i =0;i<5;i++){
			System.out.println("第"+(i+1)+"行皇后放在第"+X[i]+"列处。");
	}
		
	}
}


 


	

⌨️ 快捷键说明

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