写一个C++代码解决八皇后问题
时间: 2023-03-14 21:09:48 浏览: 111
C++基于回溯法解决八皇后问题示例
#include <stdio.h>
int a[9], book[9], sum = 0;// 八皇后问题
void dfs(int step)
{
int i, j;
// 如果步数达到8,那么说明已经找到了一个可行解
if (step == 8)
{
sum++;
printf("第%d种解法\n", sum);
for (i = 0; i < 8; i++)
{
printf("%d", a[i]);
}
printf("\n");
return;
}
for (i = 0; i < 8; i++)
{
// 如果没有被占用
if (book[i] == 0)
{
// 假设第step步可以放置
a[step] = i;
// 将这一列置为占用
book[i] = 1;
// 放置下一步皇后
dfs(step + 1);
// 恢复现场
book[i] = 0;
}
}
return;
}int main()
{
dfs(0);
return 0;
}
阅读全文