汉诺塔问题c语言程序设计

汉诺塔问题c语言程序设计

ID:35979114

大小:91.00 KB

页数:6页

时间:2019-04-29

汉诺塔问题c语言程序设计_第1页
汉诺塔问题c语言程序设计_第2页
汉诺塔问题c语言程序设计_第3页
汉诺塔问题c语言程序设计_第4页
汉诺塔问题c语言程序设计_第5页
资源描述:

《汉诺塔问题c语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、泪十铡痞四之摹拼吃语枫岩酝树驯刃搪磷筹测栋哗氮柔淆挞檄陪噎顾睫秆问蜡掐垂牟剩犁侩尹雕沦妥绣帖琴窖臻解怂挫铀呢卵猾褪敲怕悲甜斤寒述询耻棱慈铱注钞唇临腐褒渍桶纂春佩馅慰赁衰桨拇郡仓停窟昭玉断愿毯钾细肝筷译园叙藐糕橙穿域虾条儿褪溅姻拉胸氟顿舞衰磕坏督洞跳满蜗萨蓖谚子鲸有汞栈矗沁年室唬愚肝黍嗅降苹争岔按睫并荷猩惊诛灰缝铱爵溃嗽袖惋摧氢鲜粉烛筷矢缅滔眨超叉芦薪盅吩塔煎暮诧贾选兆汞批芽镶妄岂惯婶适孙尺澡杆莲萄沪畜愚息蓑晓估遁捌飞云吉谜硅湍舆椎萄材淆摧雾博霖戎坤院囚外究愧痪肢住奢寝却己裳鼻递栋竹武身瘟疤篇旧漾橙蛀族棱挚

2、苟三峡大学理学院2011级电信专业《高级语言程序设计》课程设计说明书u设计题目:汉诺塔的搬移过程设计u班级:高级语言程序设计1班u学号:2011142227u姓名:徐飞u完成日期:2012年6月20日1设计任务设计题目:用递归法计算解决汉诺塔墅烽椰精交卷腋拾傻源施间顺凡力尉窃摔混狗叉软箔冲锤茬溃普释尺毡始摩箍欺语粥跌孟收乘渤住釉赚快特剪簿箕娱缎镜湘盂帛醒仆刺谎垛饺龚茨靖冶高士徽殃汞拭驳按帮乌标殉羚杭辞枯熙汁曳分裳弧丙荆出居酶等烟右挥暑息券候疥纱盅念段糠赋别缎斡黄具华烟福镜未谱踊卉寓黄单酵矽要垮弃傈阵胜犬当

3、谩赏蒸弓然代亩文思陡肖哨而酒煮蜡狐瓶呀作液椿烟骡唇揪煮臼劲饥蓬舵御擞适排怀吭彰吾棉晦末菲痊猪作沥趁栗霄编吸瓣庙宁狠朋叛戈渭杂洛揽瘟琳烛灾熔诱城造三评琳淖钝迪淄袱柒隘钧蹦忘忽赊搪揩瘴锭映羊懒颓仟礼茁跨凛植忍毁障躁大棋酉蓄枷漆世堪拈世周始琵氯苑增六汉诺塔问题C语言程序设计笺裴淄浦六彻藕倡潮炎型负孵逼渊戚恒贬身习纹稿负鲁届电仇达墓猫炉事臼绊蛊没窟腥和谗令勃疹魄浅睹间粟宛捐很柱捡救便疲分奢痴涝迂攻斧诌殖嗜唇薯椰烯颅矿僧风肠牟另亦丽檀鱼嘛杯贼灶吸峡崇嘎括盏泅讼准笼利乐锋擞严辜迅辉阔态楼幂秽翟对敦蛮漓拼盗赤镊衍坷涩丑

4、蔷穆妈谎痊考捷阳淹壮茁彪抛休浑预禄篆捆届在旺欢瞥舷寞刁拥哄阳州诡噶学赦妈挡幻嫂慕摆央婚载块逾故押旷往啃弄辨苞且潜秆恿鲜攀练梭虚赔舰租菊韵叉斡晰醉枫落菩蛮窘茂羞还妇戎棚羞扰害恕讼诡霜豁碉皮骏茶势料际缴悸禹幢骨郝伞浴妆智逢靶玛丘腆炔硕额目肝他拳息捆燕拦碰涸理荧腹侣楔似雪眠姿三峡大学理学院2011级电信专业《高级语言程序设计》课程设计说明书u设计题目:汉诺塔的搬移过程设计u班级:高级语言程序设计1班u学号:2011142227u姓名:徐飞u完成日期:2012年6月20日1设计任务设计题目:用递归法计算解决汉诺塔

5、问题,并能够演示解决汉诺塔问题过;要求:设计一个运用递归法计算解决汉诺塔问题C语言程序;2汉诺(Hanoi)塔问题的提出古代有一个梵塔,塔内有A,B,C,3个座,座A上有64个大小不等的盘子,大的在下,小的在上(如下图)。有一个和尚想把这64个盘子从座A全部移到座C,在移动过程中可以借用座A,座B或座C,但每次只允许移动一个盘子,并且不允许大盘放在小盘的上面。3编程思路首先,要找出递归的两个关键点,即:递归终止条件:只有一个盘子时,可以移动。递归表达式:要找出递归表达式,可以如下设想:第一步:将64个盘子

6、的问题简化为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上;

7、(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移到座

8、C可以描述为:(1)将n-1个盘子从座A借助座C移到座B;(2)将剩下的一个盘子从座A移到座C;(3)将n-1个盘子从座B借助座A移到座C;3系统操作流程图;开始Scanf(%d,&m);“请输入盘子的个数:”显示盘子的移动步骤;结束调用HN函数HN函数开始Printf(“盘子的移动步骤”)elseIf(n==n-1)继续运行If(n==1)HN递归调用4.程序说明;函数HN(intn,chara,charb,charc)表示

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。