//Eight Queen Problem Recall Way回溯法解决八皇后问题
#define max 8
int queen[max], sum = 0;
int check(int n)
{
int i;
for (i = 0; i < n; i++)
{
if (queen[i] == queen[n] || abs(queen[i] - queen[n]) == (n - i))
return 1;
}
return 0;
}
void show()
{
for (int i = 0; i < max; i++)
{
cout << " " << queen[i];
}
sum++;
cout << endl;
}
void NQueens(int n)
{
int i;
for (i = 0; i < max; i++)
{
queen[n] = i;
if (!check(n))
{
if (n == max - 1)
{
show();
}
else
{
NQueens(n + 1);
}
}
}
}
回溯法解决八皇后问题
最新推荐文章于 2021-06-21 19:37:30 发布