#include <bits/stdc++.h>
using namespace std;
bool c[8];//记录第i行是否落子
int ans[8];//记录每列落在第几行
int num;
bool ok(int u,int i){
if(c[i])return false;
for(int j=0;j<u;++j){
int t=ans[j];
if(abs(i-t)==abs(u-j)){
return false;
}
}
return true;
}
void dfs(int u){
if(u==8){
cout<<"No. "<<++num<<endl;
for(int i=0;i<8;++i){
for(int j=0;j<8;++j){
if(ans[j]==i)cout<<1;//如果第j列落子在第i行那输出1
else cout<<0;
if(j!=7)cout<<" ";
}
cout<<endl;
}
}
for(int i=0;i<8;++i){//对每一列选行落子
if(ok(u,i)){//如果第u列第i行可以落子,那么落子并且向下一列进行搜索
ans[u]=i;
c[i]=true;
dfs(u+1);
c[i]=false;
}
}
}
int main(){
dfs(0);//从第一列开始搜索
return 0;
}
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<cmath>
using namespace std;
#define up(i,l,r) for(int i=l;i<=r;++i)
const int ma=1000;
int tot=1;
int a[ma],b[ma],w[ma],m[ma];
int print()
{
cout<<"No. "<<tot++<<endl;
up(j,1,8){
up(i,1,8){
if(j==a[i])cout<<"1 ";
else cout<<"0 ";
}
cout<<endl;
}
}
int search(int j)
{
for(int i=1;i<=8;++i){
if(b[i]==0&&m[i+j]==0&&w[i-j+7]==0){
a[j]=i;b[i]=1;
w[i-j+7]=1;m[i+j]=1;
if(j==8)print();
else
search(j+1);
b[i]=0;
w[i-j+7]=0;m[i+j]=0;
}
}
}
int main()
{
search(1);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具