- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                主讲人:刘斌汉诺塔问题递归函数的应用问题1:古代有一个梵塔,塔内有三个柱A、B、C,A柱上有64个盘子,盘子大小不等,大的在下,小的在上(如图5-15)。有一个和尚想把这64个盘子从A柱移到C柱,但每次只能允许移动一个盘子,并且在移动过程中,3个柱上的盘子始终保持大盘在下,小盘在上。在移动过程中可以借助B柱,要求打印移动的步骤。初始时,只有A柱上有盘,目的就是通过B柱移动到C柱上。ABC首先对该问题进行分析,分析结论如下:对于n个盘子的汉诺塔,设从上到下n个盘子的编号分别为1,2,…,n,三根柱分别叫做起始柱,目标柱和辅助柱。当n等于1时可以直接由起始柱移动到目标柱。当n1时显然不能直接移动,此时可以把起始柱上最上面的n-1个盘子看作是一个逻辑盘,最下面的一个盘子看作是物理盘。02递归函数的应用03只需要下面三步就可以完成任务了。ABC递归函数的应用04递归关系可表示为:1.把A柱上的前n-1个盘子借助C柱移到B柱,即Hanoi (n-1,A,C,B)。2.把第n号盘子从A柱移到C柱,即Print (n,A,C)。3.把B柱上的n-1个盘子借助A柱移到C柱,即Hanoi (n-1,B,A,C)。(12)	Hanoi(n-1,C,B,A);(13)	}(14)}(15)int main()(16){(17)	int n;(18)	printf(请输入汉诺塔盘子个数:\n);(19)	scanf(%d,n);(20)	Hanoi(n,A,B,C); printf(%d\n,sum);(21)	return 0;(22)}递归函数的应用05(1)#include stdio.h(2)void Hanoi(int n,char A,char B,char C) (3){(4)	if(n==1)(5)	{(6)	printf(将 %d 号盘子从 %c 柱移动到 %c 柱\n,n,A,B);(7)	}(8)	else(9)	{(10)	Hanoi(n-1,A,C,B);(11)	printf(将 %d 号盘子从 %c 柱移动到 %c 柱\n,n,A,B);⑵⑶⑴⑷H(3,A,B,C){ H(2,A,C,B); P(3,A,B); H(2,C,B,A);}?⑸⑹⑺⑻⑼⑿⑽⑾H(1,A,B,C){ P(1,A,B);}H(1,C,A,B){ P(1,C,A);}H(1,B,C,A){ P(1,B,C);}H(1,A,B,C){ P(1,A,B);}H(2,C,B,A){ H(1,C,A,B); P(2,C,B); H(1,A,B,C);}????H(2,A,C,B){ H(1,A,B,C); P(2,A,C); H(1,B,C,A);}??递归函数的应用06调用和回代过程下面以n=3为例说明调用回代过程,如PPT所示。图中可以看到用H(n-1,A, B, C)代替Hanoi (n-1,A, B, C),用P (n,A,B)代替Print (n,A,B),课堂实践对给定的函数void P(int w),画出当w=3时p(3)的调用和回代图,并给出P(3)的输出结果。void P(int w){	if(w0)	{	P(w-1);	printf(%4d,w);	P(w-1);	}}07再   见
                您可能关注的文档
- 2第二章货币资金021第一讲新.ppt
 - 2第二章货币资金022第二讲 新.ppt
 - 2第二章货币资金023第三讲 新.ppt
 - 2第二章货币资金024第四讲 新.ppt
 - 2第二章货币资金025第五讲新.ppt
 - 2第二章货币资金小会计汴.doc
 - 2第二章货币资金财务会计实务(高丽萍)课件1.doc
 - 2第二章货币资金财务会计实务(高丽萍)课件2.doc
 - 2第二章货币资金财务会计实务(高丽萍)课件3.doc
 - 2第二章货币资金财务会计实务(高丽萍)课件4.doc
 
- C语言程序设计(第2版)李学刚教学资源教学课件5-1while语句.pptx
 - C语言程序设计(第2版)李学刚教学资源教学课件5-2do-while语句.pptx
 - C语言程序设计(第2版)李学刚教学资源教学课件5-4continue语句.pptx
 - C语言程序设计(第2版)李学刚教学资源教学课件5-6递归概述.pptx
 - C语言程序设计(第2版)李学刚教学资源教学课件5-9输出指定图案.pptx
 - C语言程序设计(第2版)李学刚教学资源教学课件6-12统计单词个数.pptx
 - C语言程序设计(第2版)李学刚教学资源教学课件6-1数组的定义.pptx
 - C语言程序设计(第2版)李学刚教学资源教学课件6-2数组的存储.pptx
 - C语言程序设计(第2版)李学刚教学资源教学课件6-4数组元素的引用及数组作为函数参数.pptx
 - C语言程序设计(第2版)李学刚教学资源教学课件6-5冒泡排序.pptx
 
原创力文档
                        

文档评论(0)