判断每一行以及对角线就完事了
对角线是y-x和x+y
import java.util.*;
class Main{
static int a[];
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
int n=in.nextInt();
a=new int [n];
f(0);
System.out.println(ans);
}
static int ans;
static void f(int k) {
if(k==a.length) {
ans;
if(ans<=3) {
for(int i=0;i<a.length;i) {
System.out.print(a[i]+” “);
}System.out.println();
}
return;
}
for(int i=1;i<=a.length;i++) {
boolean ok=true;
a[k]=i;
for(int j=0;j<k;j++) {
if(a[k]==a[j]||k-a[k]==j-a[j]||k+a[k]==j+a[j]) {
ok=false;
break;
}
}if(ok) {
f(k+1);
}
}
}
}