#include <stdio.h>
#include <math.h>
#define N 4 //皇后数目
void main()
{
int x[N+1],fg,k,i,s,n,j;
n=N;
i=1;
x[i]=1;
s=0;
printf("%d皇后问题:\n\n",N); //输出N皇后问题
while(1)
{
fg=1;
for(k=i-1;k>=1;k--)
if(x[i]==x[k]||abs(x[i]-x[k])==i-k) fg=0; //检测约束条件
if(fg==1 && i==n) //找到一组解
{
s++;
for(j=1;j<=n;j++) printf("%2d",x[j]);
printf("\n");
}
if(i<n && fg==1) //生成下一结点试探
{
i++;
x[i]=1;
continue;
}
while(x[i]==n && i>1) i--; //向前回溯
if(i==1&&x[i]==n) break; //结束,退出循环
else x[i]=x[i]+1; //换另一路径试探
}
// printf("%d\n",s); //输出方案总数
}
N-Queen-problem.rar_queen
版权申诉
43 浏览量
2022-09-23
11:20:06
上传
评论
收藏 154KB RAR 举报
御道御小黑
- 粉丝: 58
- 资源: 1万+
最新资源
- Windows系统下安装与配置Neo4j的步骤
- 基于matlab实现潮流计算和最优潮流计算的程序1,对毕业设计有一定用处.rar
- 基于大数据学习资源推荐系统的设计与实现(部署视频)-kaic.mp4
- 哈工大形式语言和自动机2022期末含答案
- Windows系统下安装与配置Neo4j的步骤
- 哈希算法(Hash Algorithm)是一种将任意长度的二进制数据映射为较短的、固定长度的二进制值的函数.txt
- Windows系统下安装与配置Neo4j的步骤
- 在二叉树或更复杂的树形结构中,先序输出叶结点.txt
- 列出所有祖先结点的概念通常与树形结构或图论中的节点相关.txt
- 基于matlab实现潮流计算程序,MATLAB潮流计算程序.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈