#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int tt;
void print(int board[],int size)
{
int i,j;
printf("solution #%d:\n",++tt);
for(i=0;i<size;i++)
{
for(j=0;j<size;j++)
printf("%s",j==board[i]?"Q ":". ");
printf("\n");
}
printf("\n");
}
int valid(int board[],int cur)
{
int i;
for(i=0;i<cur;i++)
{
if(board[i]==board[cur])
return 0;
if(cur-i==abs(board[i]-board[cur]))
return 0;
}
return 1;
}
int queens_iter(int board[],int cur,int size)
{
while(cur>=0)
{
while(board[cur]<size-1)
{
board[cur]+&#
n皇后问题的递归与迭代算法
最新推荐文章于 2020-11-28 22:53:02 发布
本文介绍了如何使用递归和迭代方法解决经典的n皇后问题。通过valid函数确保皇后放置的安全性,递归函数queens_rec和迭代函数queens_iter分别实现了回溯搜索。代码中展示了如何打印解决方案并统计解的数量。
摘要由CSDN通过智能技术生成