全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
。汉诺塔c语言程序代码(通过vc+6.0验证)(附讲解)让我们先看看代码吧#include int hj(int a,int b, int c,int i)int t;if(i=1)printf(%d-%dn,a,c);elset=c;c=b;b=t;hj(a,b,c,i-1);printf(%d-%dn,a,b);t=a;a=c;c=t;t=b;b=c;c=t;hj(a,b,c,i-1);return 0;main()int a,b,c,i;a=1;b=2;c=3;printf(请输入汉诺塔的盘数);scanf(%d,&i);hj(a,b,c,i);return 0;以上是汉诺塔的代码,该程序主要是运用了递归的思想,比如数学中的f(x)=f(x-1)+f(x-2),在本程序中为:int hj(int a,int b, int c,int i)int t;if(i=1)printf(%d-%dn,a,c);elset=c;c=b;b=t;hj(a,b,c,i-1);也就是说,我们在这个函数中再次调用这个函数,相当于一个循环,而在再次调用的过程中,i的值变成i-1,就类似于f(x-1),这样层层调用,最终就变成当i=1的时候的值,然后通过运算,计算出想要得到的值。汉诺塔的数值分析:我们可以发现,当只有一个盘的时候,我们只需要做1-3(就是把第一个柱子上的最顶端的盘移动到第三根柱子,以下不再解释)当有两个盘的时候,是1-2 1-3 2-3三个盘子是:1-3 1-2 3-2 1-3 2-1 2-3 1-3分析一下可以得出以下结论:初始值a=1 b=2 c=3一个盘子就是a-c两个盘子与一个盘子的关系是:第一步:b与c交换值,然后打印a-c第二步:打印a-b第三步:a与c交换值,b与c交换值,打印a-c进一步分析,便可以得出以下结论只要盘子数量为i(i大于1),那么它就有三部分第一部分,b与c交换值,然后运行i-1第二部分,打印a-b第三部分,a与c交换值,b与c交换值,然后运行i-1程序表示便是:if(i=1)printf(%d-%dn,a,c);elset=c;c=b;(交换值)b=t;hj(a,b,c,i-1);printf(%d-%dn,a,b);t=a;a=c;c=t;(a c交换)t=b;b=c;c=t;(b c交换)hj(a,b,c,i-1);不明加QQ765233918(请写清备注)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医联体框架下的健康资源整合策略
- 医疗服务创新模式研究
- 介入治疗新技术应用探讨讲座
- 北交大铁路运输组织课件04列车运行图-3运行图结构
- 医疗质量控制在基层的落地策略
- 皮肤性病诊疗与预防措施与进展
- 医用影像处理技术在肿瘤诊断中的应用
- 医院医疗档案管理规范与礼仪
- 医院营养科患者营养状况分析
- 喇叭唢呐课件
- 2025北京市科学技术研究院及所属事业单位第三批招聘37人备考题库附答案
- 医院人力资源成本精细化管控方案
- 2025北京市交通运输综合执法总队轨道交通运营安全专职督查员招聘10人笔试考试参考试题及答案解析
- 2025江苏镇江市京口产业投资发展集团有限公司招聘2人备考题库含答案详解
- 防校园欺凌主题班会 (课件)
- 2025年秋季学期国家开放大学《人文英语3》形考任务综合测试完整答案(不含听力部分)
- 2025北京国文人力资源有限责任公司驻外文化和旅游机构职员招聘5人(第二期)笔试历年参考题库附带答案详解
- 企业绿色环保文化建设方案
- 心肺复苏(CPR)与AED使用实战教程
- 2025年自动控制原理期末考试题库及答案
- 2025年校长职级笔试题及答案
评论
0/150
提交评论