#include "stdafx.h"
#include <algorithm>
#include <iostream>
using namespace std;
int q[8][8]={0};
int colum[8]={0};
int cl[8]={0};
int lc[8]={0};
void output()
{
for(int i=0;i<8;++i)
{
copy(q[i],q[i]+sizeof(q[i])/sizeof(int),ostream_iterator<int>(cout," "));
cout<<endl;
}
}
void queen(int step,int &c)
{
if(step==8) //得到答案
{
cout<<"("<<++c<<")"<<endl;
output();
return;
}
for(int i=0;i<8;++i)
{
if(colum[i]==0 && cl[step-i+7]==0 && lc[step+i]==0)//不冲突
{
colum[i]=1;//凡走过必留下痕迹
cl[step-i+7]=1;
lc[step+i]=1;
q[step][i]=1;
&nb

这是一个使用C++解决八皇后问题的代码实现。通过递归和回溯法,找到所有可能的皇后放置方案,避免同一行、同一列或对角线上有其他皇后。程序输出所有解决方案的数量和具体摆放情况。
最低0.47元/天 解锁文章
307

被折叠的 条评论
为什么被折叠?



