8皇后问题回溯算法程序修改(C++)
发布网友
发布时间:2022-04-10 23:30
我来回答
共1个回答
热心网友
时间:2022-04-11 00:59
int main(){
int q[8],c,i,j,count=0;
q[0]=0;
c=0;
while (c!=-1)
{
c++;
if (c==8)
{
cout<<"chess No."<<++count<<endl;
cout<<" 0 1 2 3 4 5 6 7"<<endl;
for (i=0;i<8;i++){
cout<<i;
for (j=0;j<8;j++)
if (q[j]==i)
cout<<" Q";
else
cout<<" .";
cout<<endl;
}
c--;
}
else
{
q[c]=-1;
}
while (c!=-1)
{
q[c]++;
if (q[c]==8)
{
c--;
}
else
{
for (i=0;i<c;i++)
if (q[c]==q[i]||abs(q[c]-q[i])==c-i)
break;
if (i==c)
{
break;
}
}
}
}
}