递归解决八皇后

递归解决八皇后问题 #include

static char Queen[8][8];

static int a[8];

static int b[15];

static int c[15];

static int iQueenNum = 0; //记录总的棋盘状态数

void qu(int i); //参数代表行

int main()

{

int iLine,iColumn;

//棋盘初始化,空格为*,放置皇后的地方为@ for(iLine = 0; iLine

{

a[iLine] = 0; //列标记初始化,表示无列冲突 for(iColumn = 0; iColumn

for(iLine = 0; iLine

{

a[iLine] = 0;

for(iColumn = 0; iColumn

}

//主、从对角线标记初始化,表示没冲突 for(iLine = 0; iLine

b[iLine] = c[iLine] = 0; //列标记初始化,表示无列冲突

qu(0);

return 0;

}

void qu(int i)

{

int iColumn; for(iColumn = 0; iColumn

}

}

} Queen[i][iColumn] = '@'; a[iColumn] = 1; b[i-iColumn+7] = 1; c[i+iColumn] = 1; if(i

递归解决八皇后问题 #include

static char Queen[8][8];

static int a[8];

static int b[15];

static int c[15];

static int iQueenNum = 0; //记录总的棋盘状态数

void qu(int i); //参数代表行

int main()

{

int iLine,iColumn;

//棋盘初始化,空格为*,放置皇后的地方为@ for(iLine = 0; iLine

{

a[iLine] = 0; //列标记初始化,表示无列冲突 for(iColumn = 0; iColumn

for(iLine = 0; iLine

{

a[iLine] = 0;

for(iColumn = 0; iColumn

}

//主、从对角线标记初始化,表示没冲突 for(iLine = 0; iLine

b[iLine] = c[iLine] = 0; //列标记初始化,表示无列冲突

qu(0);

return 0;

}

void qu(int i)

{

int iColumn; for(iColumn = 0; iColumn

}

}

} Queen[i][iColumn] = '@'; a[iColumn] = 1; b[i-iColumn+7] = 1; c[i+iColumn] = 1; if(i


相关文章

  • 八皇后实验报告
  • 数据结构实验报告 实验名称: 实验二--八皇后问题 学生姓名: 姜山 班 级: 2011211106 班内序号: 14 学 号: 2011210167 日 期: 2012年11月16日 1. 实验要求 [实验目的] 1. 进一步掌握指针.模 ...查看


  • 中南大学算法实验报告
  • 算法分析与设计 实验报告 学院: 信息科学与工程学院 专业班级: i got7 指导老师: 学号: i got7 姓名: 鸟宝宝 a. 合并排序 合并排序是分治法的应用,把需要排序的数组A[1 - n],一分为二A[1 -n/2]和A[n/ ...查看


  • 程序设计方法学第七章
  • 第7章 递归程序设计 本章目标 ?什么是递归定义,递归的优缺点 ?什么是迭代,递归与迭代的区别 ?什么是递归数据结构, 有哪些结构是递归数据结构 ?什么是简化的函数型递归程序模型, 递归程序的计算规则 ?递归程序的正确性证明 内容线索递归的 ...查看


  • 计算机专业新生课计算思维课程思考
  • 计算思维课程思考 信安1502刘嘉欣 摘要:信息技术的快速发展不仅改变着人们的日常行为方式,也转变着人们的认知结 构和思维特征.计算机渗入到人类生活的各个领域,影响和改变着人们的生活,人类如今要做的是让计算机成为帮助自己的工具,而不是沦为计 ...查看


  • 八皇后位运算版
  • n皇后问题位运算版 n皇后问题是啥我就不说了吧,学编程的肯定都见过.下面的十多行代码是n皇后问题的一个高效位运算程序,看到过的人都夸它牛.初始时,upperlim:=(1 shl n)-1.主程序调用test(0,0,0)后sum的值就是n ...查看


  • 2013计算机算法设计与分析期终考试复习题
  • 计算机算法设计与分析复习题 一.填空题 1.一个算法复杂性的高低体现在计算机运行该算法所需的时间和存储器资源上,因此算法的复杂性有 时间 复杂性和空间复杂性之分. 2.出自于"平衡子问题"的思想,通常分治法在分割原问题, ...查看


  • 算法设计与分析复习题目及答案
  • 分治法 1.二分搜索算法是利用( 分治策略)实现的算法. 9. 实现循环赛日程表利用的算法是(分治策略 ) 27.Strassen矩阵乘法是利用(分治策略 )实现的算法. 34.实现合并排序利用的算法是(分治策略 ). 实现大整数的乘法是利 ...查看


  • 二叉树的遍历算法
  • 二叉树的前序.后序的递归.非递归遍历算法 摘 要 本课程设计主要解决树的前序.后序的递归.非递归遍历算法,层次序的非递归遍历算法的实现.在课程设计中,系统开发平台为Windows 2000,程序设计设计语言采用Visual C++,程序运行 ...查看


  • 五连珠问题
  • 五连珠问题 摘要 五连珠好比我们的五子棋,五子相连为获胜而本文就对五子棋相关的五连珠问题做出一些研究,在棋盘上的每个小方格中都放上棋子,从中取出一些棋子,使得棋盘上剩下的棋子,没有五个在一条直线(横.竖.斜方向)上依次相连,求满足条件的取出 ...查看


热门内容