作者:四月草上飞2602920415 | 来源:互联网 | 2024-10-30 13:02
本文详细解析了经典的八皇后问题,通过深入浅出的讲解和实战技巧分享,帮助读者轻松掌握这一经典算法。文章不仅提供了详细的代码实现,还介绍了多种求解方法及其应用场景,使读者能够全面理解并灵活运用该算法。
#include
using namespace std;
int a[10],b[10],c[100],d[100],m=0;
void fun()
{
int i,j;
m++;
cout<<"No. "<for(i=1;i<=8;i++)
{
for(j=1;j<=8;j++)
if(a[j]==i)
cout<<"1"<<" ";
else
cout<<"0"<<" ";
cout<}
}
void dfs(int i)
{
int j;
if(i>8)
fun();
else
for(j=1;j<=8;j++)
if(b[j]==0&&c[i+j]==0&&d[i-j+7]==0)
{
a[i]=j;
b[j]=1;c[i+j]=1;d[i-j+7]=1;
dfs(i+1);
b[j]=0;c[i+j]=0;d[i-j+7]=0;
}
}
int main()
{dfs(1);
return 0;
}