- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汉诺塔问题求解程序
基于汉诺塔问题的求解程序,分别使用全局变量和局部变量来计算当塔中有n个盘子时需要进行多少步的盘子移动次数(例如当塔中有5个盘子时,需要移动31次)。提示:当使用局部变量时,函数的原型可以为 long hanoi(int ,char,char,char),该函数的功能是完成hanoi塔的移动并返回其执行步数。
方法一: 使用局部静态变量
#includestdio.h
long hanoi(int n,char one, char two, char three)
/*该函数计算移动盘的步骤并返回移动步数{
static long int count=0;
/* 定义静态局部变量count,用以计算总共移动他多少次 if(n==1)
{
printf(move %c-- %c\n,one, three);
count++;
}
else
{
hanoi(n-1,one,three,two);
printf(move %c-- %c\n,one, three);
count++;
hanoi(n-1,two,one,three);
}
return(count);
}
void main()
{
int m=0;
long int steps; /*定义长整型变量step用来装载hanoi函数的返回值 printf(please input the number of diskes:);
scanf(%d,m);
printf(the steps are following:\n);
steps=hanoi(m,A,B,C);
printf(They need %ld steps to move\n,steps);
}
方法二: 使用一般局部变量
#includestdio.h
long hanoi(int n,char one, char two, char three)
/*该函数计算移动盘的步骤并返回移动步数{
long int count1=0, count2=0;
/* 定义局部变量count, if(n==1)
printf(move %c-- %c\n,one, three);
else
{
count1=hanoi(n-1,one,three,two);
printf(move %c-- %c\n,one, three);
count2=hanoi(n-1,two,one,three);
}
return(count1+count2+1);
}
void main()
{
int m=0;
long int steps; /*定义长整型变量step用来装载hanoi函数的返回值 printf(please input the number of diskes:);
scanf(%d,m);
printf(the steps are following:\n);
steps=hanoi(m,A,B,C);
printf(They need %ld steps to move\n,steps);
}
方法三: 使用全局变量
#includestdio.h
long count=0; /*定义全局变量来统计移动步数 */
void hanoi(int n,char one, char two, char three)
/* 该函数计算移动盘的步骤{
if(n==1)
{
printf(move %c-- %c\n,one, three);
count++;
}
else
{
hanoi(n-1,one,three,two);
printf(move %c-- %c\n,one, three);
count++;
hanoi(n-1,two,one,three);
}
}
void main()
{
int m=0;
printf(please input the number of diskes:);
scanf(%d,m);
printf(the moving steps are following:\n);
hanoi(m,A,B,C);
printf(They need %ld steps to move\n,count);
}
您可能关注的文档
- 歌剧“茶花女”中维奥莱塔重要唱段解析.doc
- 歌唱中呼吸的重要性分析和其探索之路.doc
- 歌唱中情感处理关键性分析.doc
- 模电课程设计––万用表.doc
- 歌曲“大森林早晨”教案.doc
- 歌曲“如今家乡山连山”教学教案.doc
- 歌曲作法课复习提纲〔期末〕.doc
- 歌曲《新世纪的新1代》教案.doc
- 歌唱过程中常见的心理问题和解决.doc
- 正交试验设计与方差分析在市场调查中应用研究.doc
- 2025至2030中国发泡聚丙烯(EPP)泡沫行业市场占有率及投资前景评估规划报告.docx
- 2025至2030中国台下式冷冻柜行业市场占有率及投资前景评估规划报告.docx
- 2025至2030中国反坦克导弹系统行业产业运行态势及投资规划深度研究报告.docx
- 2025至2030中国各向异性导电胶(ACP)行业市场占有率及投资前景评估规划报告.docx
- 2025至2030中国合成单晶钻石行业市场占有率及投资前景评估规划报告.docx
- 2025至2030中国发射天线行业市场占有率及投资前景评估规划报告.docx
- 2025至2030中国口罩用无纺布行业市场发展分析及发展趋势预测与战略投资报告.docx
- 利率市场化背景下商业银行盈利模式转型中的金融监管应对策略研究教学研究课题报告.docx
- 2025至2030中国可生物降解微球市场行情走势与未来营销策略分析报告.docx
- 2025至2030中国叶黄素酯软糖行业销售模式与未来营销动态研究报告.docx
最近下载
- CAD软件:PTC Creo 二次开发all.docx VIP
- 部编版语文六年级上册全册教学设计(教案).pdf VIP
- 《宪法基本知识课件:公务员考试公基必备》.ppt VIP
- 航空概论完整全套教学课件.pptx
- 辽宁研发楼室内精装修冬季施工方案.doc VIP
- 《饮用水源保护区》课件.ppt VIP
- 2022年CCAA注册审核员《产品认证基础》试题(网友回忆版).docx VIP
- 证明某人是某个公司的实际控制人的协议书6篇.docx VIP
- 2025-2026新人教版小学3三年级数学上册全册教案【新教材】.doc
- 精品解析:天津市河西区2024-2025学年八年级下学期期末数学试卷(解析版).docx VIP
文档评论(0)