gpt4 book ai didi

c++ - 这个 8 Queen 程序有什么错误?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:31:49 25 4
gpt4 key购买 nike

<分区>

代码是在8*8的棋盘上放置8个皇后,水平、垂直、对角线均不攻击。详情可引用维基百科链接http://www.google.co.in/url?sa=t&rct=j&q=8%20queens%20problem&source=web&cd=1&cad=rja&sqi=2&ved=0CDEQFjAA&url=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FEight_queens_puzzle&ei=XKbdUMbqLIn4rQfCoICACA&usg=AFQjCNEXFxAwqTUrl19GJ9Y9yh97g5hGFg&bvm=bv.1355534169,d.bmk

#include<iostream>
#include<conio.h>
using namespace std;
int recu(int i,int k);
void place(int i,int k);
void unplace(int i,int k);
int q[8][8];
/*flags for blocks*/
int row[8];
int column[8]; /*flag for column*/
int c[15]; /*flag for diagonls*/
int d[15];
int main()
{
for(int i=0;i<8;i++) /*initalize flags */
{
row[i]=0;
column[i]=0;
c[i]=0;
d[i]=0;
}
for(int i=8;i<15;i++) /*initalize flag diagonals*/
{
c[i]=0;d[i]=0;
}
int i=0;
int k=0;
recu(i,k);

for(int i=0;i<8;i++) /*for display output*/
{
for(int k=0;i<8;i++)
{
if(q[i][k]==1)
{
cout<<"(";
cout<<i;
cout<<",";
cout<<k;
cout<<")";
}
}
}
getch();
return 0;
}

int recu(int i,int k)
{
if(k<8)
{
if(column[i]==0 && row[k]==0 && c[i+k]==0 && d[i-k+7]==0)
{
place(i,k);
k=0;
recu(i+1,k);
}
else
k++;
}
else
unplace(i,k);
return 0;
}

void place(int i,int k)
{
q[i][k]=1;
row[i]=1;
column[k]=1;
c[i+k]=1;
d[i-k+8]=1;
}

void unplace(int i,int k)
{
q[i][k]=0;
row[i]=0;
column[k]=0;
c[i+k]=0;
d[i-k+7]=0;
}

我正在获取输出,但只有 (0,0) 和 (7,0)。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com