#include"iostream"
#include"stdlib.h"
using namespace std;
int x[8],tot=0;
bool B(int x[],int k)
{
int i;
for(i=0;i<k;i++)
if(x[i]==x[k]||(abs(x[i]-x[k])==abs(i-k)))
return 0;
return 1;
}
int queen(int i)
{
if(i>=8)
{
tot++;
for(i=0;i<8;i++)
cout<<x[i]<<" ";
cout<<endl;
return 0;
}
for(int k=0;k<8;k++)
{
x[i]=k;
if(B(x,i))
queen(i+1);
}
}
int main()
{
queen(0);cout<<tot<<endl;
return 0;
}
【基础算法】回溯法与八皇后问题
猜你喜欢
转载自blog.csdn.net/mlm5678/article/details/83475830
今日推荐
周排行