版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xjm850552586/article/details/79594436
之前有篇文章写了八皇后问题,近来重写时觉得有所简便,便再铺上个新代码。
如果对八皇后问题不了解的可以翻阅我之前的文章
下面铺上代码供浏览进来的小可爱参考~
#include<iostream>
#include<math.h>
using namespace std;
int loc[8];
int sum=0;
int judge(int row,int col)
{
int i;
for(i=0;i<=col-1;i++)
if(loc[i]==row||abs(loc[i]-row)==col-i)
return 0;
return 1;
}
void push(int col)
{
int row;
if(col==8)
{
sum++;
return;
}
for(row=0;row<8;row++)
{
if(judge(row,col))
{
loc[col] = row;
push(col+1);
}
}
return;
}
int main()
{
int i;
for(i=0;i<8;i++)
{
loc[0]=i;
push(1);
}
cout<<sum;
return 0;
}