在一个N*N的棋盘上放置N个皇后,使她们互相不在同行同列,或同对角线,输出有多少种可能。
样例输入:
3
8
样例输出:
0
92
import java.util.Scanner;
public class Main {
public static int search(int[] res,int cursor){
int sum=0;
if(cursor==res.length){
return 1;
}
for(int i=0;i<res.length;i++){
boolean flag=true;
for(int j=0;j<cursor;j++){
if(i==res[j]||cursor-i==j-res[j]||cursor+i==j+res[j])
flag=false;
}
if(flag){
res[cursor]=i;
sum+=search(res,cursor+1);
}
}
return sum;
}
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext())
{
int n=scanner.nextInt();
int[] res=new int[n];
System.out.println(search(res,0));
}
scanner.close();
}
}