四皇后问题
来源:互联网 发布:最经典的网络歌曲 编辑:程序博客网 时间:2024/05/01 08:09
#include <stdio.h>
#include <conio.h>
#include <math.h>
int k=1;
int queen[4]; //四个皇后的列的坐标
void Queen();
void PrintQueen(); //输出当前四个皇后的位置
bool CheckSafe(); //检查当前已经放置的皇后的位置是否安全
void main()
{
Queen();
}
void Queen()
{
if(k>4) //四个皇后的放置都安全,则输出此时的放置顺序
PrintQueen();
else
{
for(int i=1;i<=4;i++)
{
queen[k-1]=i; //将第K个皇后放在i位置上
if(CheckSafe())
{//如果已经放置的几个皇后都安全,则放置下一个皇后
k++;
Queen();
}
}
}
k--; //回溯到上一个皇后的位置
}
void PrintQueen()
{
for(int i=1;i<=4;i++)
{
printf("第%d个皇后的位置为:%d/n",i,queen[i-1]);
}
printf("/n");
}
bool CheckSafe()
{
for(int i=0;i<k-1;i++)
{
if(queen[k-1]==queen[i]) //两个皇后在同一列上
return false;
if(((queen[k-1]-queen[i])==(k-1-i))||((queen[k-1]-queen[i])==-(k-1-i))) //两个皇后在一条斜线上
return false;
}
return true;
}
呵呵,刚刚写的,用全局变量好像不大好。回去再改改去。
- 四皇后问题
- 四皇后问题
- 四皇后问题的回溯
- 数据库约束解四皇后问题
- 回溯法——四皇后问题
- 递归研究(四) 八皇后问题
- 第六章(9).四皇后问题
- 经典的四皇后问题深度搜索
- 回溯经典算法之四皇后问题
- 八皇后问题详解(四种解法)
- 四皇后
- 四皇后问题(同理适用于n皇后问题)图片版
- 全国青少年信息学奥林匹克竞赛培训---pascal版“四皇后问题”
- 四皇后问题的代码实现(java)
- matlab解决关于人工智能的四皇后问题
- 回溯法解决N皇后问题(以四皇后为例)
- 皇后问题
- 皇后问题
- 第一次
- Java虚拟机
- 关于老婆
- 加壳脱壳]寻找真正的入口(OEP)--广义ESP定律
- 初学者的问题----csdn系列
- 四皇后问题
- 试试博客怎么回事
- SM:Sadism & Masochism (性)虐待狂与受虐狂
- .net中using的几种用途 (平时不容易注意到)
- Struts+Spring+Hibernate开发实例
- 几个.Net开源的CMS介绍
- C++总结1:覆盖与隐藏
- 今天开始学习AJAX
- 职场点评:CEO妙语批点大学生简历