汉诺塔问题与函数递归调用课件

上传人:嘀**** 文档编号:250516514 上传时间:2024-11-03 格式:PPTX 页数:13 大小:638.13KB
返回 下载 相关 举报
汉诺塔问题与函数递归调用课件_第1页
第1页 / 共13页
汉诺塔问题与函数递归调用课件_第2页
第2页 / 共13页
汉诺塔问题与函数递归调用课件_第3页
第3页 / 共13页
点击查看更多>>
资源描述
2018/10/5,#,【,猜年龄,】,3,岁,比第,1,个大,2,岁,比第,2,个大,2,岁,比第,3,个大,2,岁,比第,4,个大,2,岁,age(4)+2,age(3)+2,age(2)+2,age(1)+2,第,5,个小朋友几岁?,一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。,递归调用定义:,一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。,递归函数调用定义,:,算法,设计如下:,1,、编写,求年龄的,函数,age,;,2,、,判断,n=1时,,返回值3;,3,、判断,n2,时,,函数,age,调用,age(n-1)+2,;,int age(int n)/,求年龄函数,if(n=1),return 3;,else,return age(n-1)+2;,函数程序如下:,4,、编写主调函数,调用递归函数。,main()/,主函数,int,fage,;,fage=age(5,);,printf(“,第五个小朋友的年龄为,%,d,岁,n,f,age,);,/,递归函数调用自身,一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。,递归函数调用定义:,源程序,如下,:,调用,过程如下:,age(5)=age(4)+2,age(3)+2,age(2)+2,age(1)+2,3,3+2=5,5+2=7,7+2=9,9+2=11,语句编写,int age(int n)/,求,年龄,函数,if(n=1),return 3;,main()/,主函数,int fage;,fage=age(5);,printf(“,第五个小朋友的年龄为,%,d,岁,n,age);,运行结果,第五个小朋友的年龄,为,11,岁,else,return age(n-1)+2;,【,汉诺塔游戏,】,有,三根杆子,A,,,B,,,C,。,A,杆上有,N,个,(N1),穿孔圆盘,盘的尺寸由下到上依次变小。,要求将,所有圆盘移至,C,杆,。移动的过程始终保持大盘在下,小盘在上的原则。,A,C,B,A,C,B,实例分析如下,:,1,、,A,C,【,汉诺塔游戏,】,有,三根杆子,A,,,B,,,C,。,A,杆上有,N,个,(N1),穿孔圆盘,盘的尺寸由下到上依次变小。,要求将,所有圆盘移至,C,杆,。移动的过程始终保持大盘在下,小盘在上的原则。,A,C,B,实例分析如下,:,1,、,A,B,2,、,A,C,3,、,B,C,【,汉诺塔游戏,】,有,三根杆子,A,,,B,,,C,。,A,杆上有,N,个,(N1),穿孔圆盘,盘的尺寸由下到上依次变小。,要求将,所有圆盘移至,C,杆,。移动的过程始终保持大盘在下,小盘在上的原则。,A,C,B,实例分析如下,:,1,、,A,C,2,、,A,B,3,、,C,B,4,、,A,C,5,、,B,A,6,、,B,C,7,、,A,C,2,个盘子从,A,B,2,个盘子从,B,C,【,汉诺塔游戏,】,有,三根杆子,A,,,B,,,C,。,A,杆上有,N,个,(N1),穿孔圆盘,盘的尺寸由下到上依次变小。,要求将,所有圆盘移至,C,杆,。移动的过程始终保持大盘在下,小盘在上的原则。,1,、,A,C,只有,1,个盘子时:,2,个盘子时:,1,、,A,B,2,、,A,C,3,、,B,C,3,个盘子时:,1,、,A,C,2,、,A,B,3,、,C,B,4,、,A,C,5,、,B,A,6,、,B,C,7,、,A,C,函数源程序如下,:,语句编写,void hanoi(int n,char A,char B,char C),if(n=1),printf(%c-%cn,A,C,);,2,个盘子从,A,B,2,个盘子从,B,C,4,个盘子时:,2,、,A,C,1,、,3,个盘子从,A,B,3,、,3,个盘子从,B,C,2,、,A,B,1,、,2,个盘子从,A,C,3,、,2,个盘子从,C,B,2,、,B,C,1,、,2,个盘子从,B,A,3,、,2,个盘子从,A,C,1,、,A,B,2,、,A,C,3,、,B C,4,、,A,B,5,、,C,A,6,、,C,B,7,、,A B,8,、,A,C,9,、,B,C,10,、,B,A,11,、,C A,13,、,A,B,14,、,A,C,15,、,B C,12,、,B,C,函数源程序如下,:,void hanoi(int n,char A,char B,char C),if(n=1),printf(%c-%cn,A,C,);,函数源程序如下,:,void hanoi(int n,char A,char B,char C),if(n=1),printf(%c-%cn,A,C,);,多个盘子算法设计如下,:,1,、把,n-1,个盘子由,A,B,2,、把第,n,个盘子由,A,C,3,、,把,n-1,个盘子,由,B,C,main()/,主函数,int,n;,scanf,(%d,hanoi(n,A,B,C,);,else,hanoi(n-1,A,C,B,);,printf(%c-,%,cn,A,C,);,hanoi(n-1,B,A,C);,运行结果,3,A-C,A-B,C-B,A-C,B-A,B-C,A-C,SUMMARY,总结,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!