#include<iostream>
using namespace std;
const int n=10;
int c[n+1],d[2*n],e[2*n+1];
int cnt=0;
int N;
void queen(int x){
if(x>N){
cnt++;
return;
}
for(int j=1;j<=N;j++){
if(c[j]==0&&d[x-j+N]==0&&e[x+j]==0){
c[j]=d[x-j+N]=e[x+j]=1;
queen(x+1);
c[j]=d[x-j+N]=e[x+j]=0;
}
}
}
int main(){
cin>>N;
queen(1);
cout<<cnt;
return 0;
}
让最多数量的王后充满棋盘并且无法互相攻击(C++)
最新推荐文章于 2024-07-25 17:54:26 发布