汉诺塔问题与函数递归调用PPT课件下载推荐.pptx
- 文档编号:8233257
- 上传时间:2023-05-10
- 格式:PPTX
- 页数:13
- 大小:678.38KB
汉诺塔问题与函数递归调用PPT课件下载推荐.pptx
《汉诺塔问题与函数递归调用PPT课件下载推荐.pptx》由会员分享,可在线阅读,更多相关《汉诺塔问题与函数递归调用PPT课件下载推荐.pptx(13页珍藏版)》请在冰点文库上搜索。
,算法设计如下:
1、编写求年龄的函数age;
2、判断n=1时,返回值3;
3、判断n2时,函数age调用age(n-1)+2;
intage(intn)/求年龄函数,if(n=1)return3;
elsereturnage(n-1)+2;
函数程序如下:
4、编写主调函数,调用递归函数。
main()/主函数intfage;
fage=age(5);
printf(“第五个小朋友的年龄为%d岁n,fage);
/递归函数调用自身,一个函数在它的函数体内调用它自身称为递归调用,这种函数称为递归函数。
源程序如下:
调用过程如下:
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,语句编写,intage(intn)/求年龄函数,if(n=1)return3;
printf(“第五个小朋友的年龄为%d岁n,age);
运行结果,第五个小朋友的年龄为11岁,elsereturnage(n-1)+2;
【汉诺塔游戏】有三根杆子A,B,C。
A杆上有N个(N1)穿孔圆盘,盘的尺寸由下到上依次变小。
要求将所有圆盘移至C杆。
移动的过程始终保持大盘在下,小盘在上的原则。
A,C,B,A,C,B,实例分析如下:
1、AC,【汉诺塔游戏】有三根杆子A,B,C。
A,C,B,实例分析如下:
1、AB,2、AC,3、BC,【汉诺塔游戏】有三根杆子A,B,C。
1、AC,2、AB,3、CB,4、AC,5、BA,6、BC,7、AC,2个盘子从AB,2个盘子从BC,【汉诺塔游戏】有三根杆子A,B,C。
1、AC,只有1个盘子时:
2个盘子时:
1、AB,2、AC,3、BC,3个盘子时:
1、AC,2、AB,3、CB,4、AC,5、BA,6、BC,7、AC,函数源程序如下:
语句编写,voidhanoi(intn,charA,charB,charC),if(n=1)printf(%c-%cn,A,C);
2个盘子从AB,2个盘子从BC,4个盘子时:
2、AC,1、3个盘子从AB,3、3个盘子从BC,2、AB,1、2个盘子从AC,3、2个盘子从CB,2、BC,1、2个盘子从BA,3、2个盘子从AC,1、AB2、AC3、BC,4、AB,5、CA6、CB7、AB,8、AC,9、BC10、BA11、CA,13、AB14、AC15、BC,12、BC,函数源程序如下:
voidhanoi(intn,charA,charB,charC),if(n=1)printf(%c-%cn,A,C);
函数源程序如下:
多个盘子算法设计如下:
1、把n-1个盘子由AB,2、把第n个盘子由AC,3、把n-1个盘子由BC,main()/主函数intn;
scanf(%d,elsehanoi(n-1,A,C,B);
printf(%c-%cn,A,C);
hanoi(n-1,B,A,C);
运行结果,3,A-CA-BC-BA-CB-AB-CA-C,SUMMARY,总结,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汉诺塔 问题 函数 递归 调用