package Nqueen; import java.util.Scanner; public class nQueen {
public static int vrb1;//定义一个全局变量用来使用
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
System.out.println("请输入数组大小>:");
int num1=sc.nextInt();
//创建目标大小的数组
int[] arrn = new int[num1];
qunn qunn1 = new qunn();
//运行
qunn1.put(arrn,0);
} } class vrb1{ int num1=0; } class qunn{
public void put(int[] arrn,int n){
if (n==arrn.length){
for (int i =0;i<arrn.length;i++){
System.out.print(arrn[i]+1+" ");
}
System.out.println(); //当一个换行符号用
System.out.println("over");
}
else{
for (int i=0;i<arrn.length;i++) {
arrn[n] = i ;
//如果此次放置没有产生冲突,则进入下一节分支
if (judge1(arrn, n)){
put(arrn,n+1);
}
}
}
}
//判断arr1中的第N位是否和前面的内容冲突
//这个方法和8皇后的内容相同
public boolean judge1(int[] arr1,int n){
for (int i = 0; i < n; i++) {
if (arr1[i] == arr1[n] || Math.abs(n - i) == Math.abs(arr1[n] - arr1[i])) {
return false;
}
}
return true;
}
}
效果图 如下
标签:java,int,arrn,打印,System,arr1,源代码,public,out From: https://blog.51cto.com/u_15831800/5893728