- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2011-2012信息奥赛第三十七次课(递归二)-递归二.ppt
递归二 第三十七次课 在调用过程或函数之前,系统需完成三件事: ⑴为被调用过程的局部变量分配存储区; ⑵将所有的实在参数、返回地址等信息传递给被调用过程保存; ⑶将控制转移到被调过程的入口。 从被调用过程返回调用过程之前,系统也应完成三 件工作: ⑴保存被调过程的计算结果; ⑵释放被调过程的数据区; ⑶依照被调过程保存的返回地址将控制转移到调用过程。 * * program ex5_15; procedure try(n:integer); begin if n=0 then writeln else begin write(*); try(n-1); end; write(*); end; begin try(5); end. 读程序写结果 分析 program p1(input,output); var n:integer;s: longint; function fac(a:integer):longint; begin if a=0 then fac:=1 else fac:=a*fac(a-1); end; begin readln(n); s:=fac(n); writeln(n,‘!=’,s) end. a=5 {fac(5)} a=4 {fac(4)} a=3 {fac(3)} a=2 {fac(2)} a=1 {fac(1)} a=0 {fac(0)} 栈用于存放递归调用中不断产生的新的局部变量 a=0 {fac(0)} a=1 {fac(1)} a=2 {fac(2)} a=3 {fac(3)} a=4 {fac(4)} a=5 {fac(5)} 1 1 2 2 1 1 6 6 24 24 120 递归思想编写的程序 优点:结构清晰、容易阅读、理解 缺点:每次调用时的参数与局部变量要占用大量的存储空间消耗较多的cpu的时间,程序运行效率地 作业5-16 : 用递归算法把任一给定的十进制正整数(=32000)转换成八进制数输出。 十进制整数与N进制整数之间的转换 结束 n:=0 n=n div 8 n0 边界条件 递归方程 用递归算法把任一给定的十进制正整数(=32000)转换成八进制数输出。 program ex5_16; var x:integer; procedure tran(n:longint); {递归过程} var k:longint; begin k:=n mod 8; {取除以8以后的余数} n:=n div 8; {取除以8以后的商} if n0 then tran(n); {直到商为0,结束递归过程} write(k) end; begin readln(x); tran(x); end. 斐波那切数列 0,1,1,2,3,5,8,13,21,34,55……从第三项起,每一项都是紧挨着的前两项的和。写出计算斐波那切数列的任意一个数据项递归函数形式。
您可能关注的文档
最近下载
- 高职入学考试英语复习指导丛书—语法专项训练教学课件(第四章数词).pptx VIP
- 2025年秋统编版语文三年级上册全册教学课件(课标版).pptx
- 2025年最新人教版小学二年级数学上册教学计划及进度表(新课标,新教材).docx
- 小区监控系统设计方案.pptx VIP
- 丹方模拟器1.32(新增龙宫草药)(1).xlsx VIP
- 等一朵花开读书分享PPT.pptx VIP
- 2012国际严重脓毒症和脓毒症休克治疗指南(SSC)..doc VIP
- 【免费】小学一年级数学“凑十法”练习题100道 .pdf VIP
- 幼儿园装修工程实施方案(模板范文).docx
- 高中物理必修二学历案.docx VIP
文档评论(0)