1 / 8
文档名称:

汉诺塔问题C语言程序设计.doc

格式:doc   大小:119KB   页数:8页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

汉诺塔问题C语言程序设计.doc

上传人:gyzhluyin 2019/9/4 文件大小:119 KB

下载得到文件列表

汉诺塔问题C语言程序设计.doc

文档介绍

文档介绍:汉诺塔问题C语言程序设计三峡大学理学院2011级电信专业《高级语言程序设计》课程设计说明书u设计题目:汉诺塔的搬移过程设计u班级:高级语言程序设计1班u学号:2011142227u姓名:徐飞u完成日期:2012年6月20日1设计任务设计题目:用递归法计算解决汉诺塔问题,并能够演示解决汉诺塔问题过;要求:设计一个运用递归法计算解决汉诺塔问题C语言程序;2汉诺(Hanoi)塔问题的提出古代有一个梵塔,塔内有A,B,C,3个座,座A上有64个大小不等的盘子,大的在下,小的在上(如下图)。有一个和尚想把这64个盘子从座A全部移到座C,在移动过程中可以借用座A,座B或座C,但每次只允许移动一个盘子,并且不允许大盘放在小盘的上面。3编程思路首先,要找出递归的两个关键点,即:递归终止条件:只有一个盘子时,可以移动。递归表达式:要找出递归表达式,可以如下设想:第一步:将64个盘子的问题简化为63个盘子的问题,分三步完成移动操作:(1)先将上面的63个盘子看成一个整体,从座A移到座B;(2)再将剩下的一个盘子(第64个,也是最大的一个)从座A移动到座C;(3)最后将63个盘子从座B移到座C。第二步,将63个盘子的问题简化成62个盘子的问题,同样分3步完成操作。再将62个盘子的问题简化成61个盘子问题。依此规律,每次重复上面的三步,这样层层递归,直到最后只有一个盘子为止。下面以3个盘子为例说明详细的移动过程:(1)将座A上的2个盘子移动到座B上;(2)将座A上的1个盘子移动到座C上;(3)将座B上的2个盘子移动到座C上;上面第1步可用递归方法分解为:(1)将座A上的1个盘子从座A移动到座C上;(2)将座A上的1个盘子从座A移动到座B上;(3)将座C上的1个盘子从座C移动到座B上;第(3)步可用递归方法分解为:(1)将座B上的1个盘子从座B移动到座A上;(2)将座B上的1个盘子从座B移动到座C上;(3)将座B上的1个盘子从座A移动到座C上;第(1)步操作可归纳为:将座A上的2个盘子借助座C移到座B;第(3)步操作可归纳为:将座B上的2个盘子借助座A移到座C;因此,将n个盘子从座A移到座C可以描述为:将n-1个盘子从座A借助座C移到座B;将剩下的一个盘子从座A移到座C;将n-1个盘子从座B借助座A移到座C;3系统操作流程图;开始Scanf(%d,&m);“请输入盘子的个数:”显示盘子的移动步骤;结束调用HN函数HN函数开始Printf(“盘子的移动步骤”)elseIf(n==n-1

最近更新

五年级分数乘法的市公开课获奖教案省名师优质.. 4页

二年级语文掌声市公开课获奖教案省名师优质课.. 4页

二年级上册搭配市公开课获奖教案省名师优质课.. 5页

九五验枪市公开课获奖教案省名师优质课赛课一.. 5页

个人微格市公开课获奖教案省名师优质课赛课一.. 5页

三年级英语第五单元市公开课获奖教案省名师优.. 4页

三年级上册作文市公开课获奖教案省名师优质课.. 5页

七年级美术市公开课获奖教案省名师优质课赛课.. 4页

一年级退位减法市公开课获奖教案省名师优质课.. 4页

一年级上册音乐市公开课获奖教案省名师优质课.. 5页

《浏阳河》市公开课获奖教案省名师优质课赛课.. 6页

高中日语第一课教学设计 4页

高中体育教学设计板书 5页

陶笛欣赏教案 4页

钠的教学设计实验总结 5页

部编版三上作文教学设计 5页

迷你世界之开飞机教学设计 5页

跟着教材学写作教学设计 6页

论语多欲焉得刚教学设计 6页

花木兰打马超的教学设计 4页

背对背拥抱的教学设计 4页

美味的荷包蛋美术教学设计 4页

绘本阅读教学设计高中语文 5页

精品教学设计的要求和策略 4页

医院岗位聘任运行机制研究-定稿 7页

第七和七的教学设计 5页

妊娠合并精神病护理ppt 24页

研讨发言:让学习之风、朴素之风、清朗之风成.. 3页

数字乡村试点方案 3页

提速道岔的三种状态及其电气参数 7页