#include <fstream>
#include <cmath>
#define MAX 8
using namespace std;
ofstream cout("out");
int queens[MAX];
int sum=0;
void print();
void placequeens(int i);
bool isValid(int n);
void print(){
for (int i=0;i<MAX;i++){
for (int j=0;j<MAX;j++){
if(j==queens[i])
cout<<"Q ";
else
cout<<". ";
}
cout<<endl;
}
}
void placequeens(int i){
for (int j=0;j<MAX;j++){
if(i==MAX){
sum++;
cout<<"# "<<sum<<endl;
print();
return;
}
queens[i]=j;
if(isValid(i)) placequeens(i+1);
}
}
bool isValid(int n){
for (int i=0;i<n;i++){
if(queens[i]==queens[n]) return false;
if(abs(queens[i]-queens[n])==(n-i)) return false;
}
return true;
}
int main()
{
placequeens(0);
cout<<"total "<<sum<<"."<<endl;
return 0;
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步