递归 N皇后问题 Java实现
思想是慕课网上郭炜老师的程序设计课
package Digui1zijibiande;
import java.util.Scanner;
//N皇后问题
public class S3 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int N=sc.nextInt();
int[]queen=new int[100];
Nqueen(0,N,queen);
}
private static void Nqueen(int k, int N,int[]queen) {
if(k==N) {
for (int i = 0; i < N; i++)
System.out.print(queen[i]+1);
System.out.println();
return;
}
for (int i = 0; i < N; i++) {
int j;
for(j=0;j<k;j++) {
if(queen[j]==i||Math.abs(queen[j]-i)==Math.abs(k-j))
break;
}
if(j==k) {
queen[k]=i;
Nqueen(k+1,N,queen);
}
}
}
}
思想是慕课网上郭炜老师的程序设计课