import java.util.Scanner;
public class QueenN {
private static int[] x;
private static int sum;
private static int N;
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
N=n;
x=new int[n+1];
backtrace(1);
System.out.println(sum);
}
private static void backtrace(int t){
if (t>N){
sum++;
System.out.println("第"+sum+"种解法:");
for (int i = 1; i <= N; i++) {
System.out.print("("+i+","+x[i]+") ");
}
System.out.println();
}
else {
for (int j = 1; j <= N; j++) {
x[t]=j;
if (place(t)){
backtrace(t+1);
}
}
}
}
private static boolean place(int n){
for (int i = 1; i < n; i++) {
if (x[i]==x[n]||Math.abs(n-i)==Math.abs(x[n]-x[i])){
return false;
}
}
return true;
}
}
回溯:N皇后问题
最新推荐文章于 2024-04-24 22:52:03 发布