课件pascal语言讲递归.pptx

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第十二讲:递归;递归的概念:

一个过程(或函数)直接或间接调用自己本身,这种过程(或函数)叫递归过程(或函数).

满足某个条件后递归终止。;例1:计算n!

可用公式如下:

f(1)=1当n=1时??

f(n)=n*f(n-1)当n1时;var

n:integer;

functionf(i:integer):integer;

begin

ifi=1thenf:=1;

f:=i*f(i-1);

end;

begin

readln(n);

writeln(f(n));

end.;一个含有n个台阶的楼梯,一个人上楼时可以一步上1个台阶,也可以一步上2个台阶,还可以一步上3个台阶。编一个程序,计算共有多少种不同的走法。(n=36);varn:integer;

functionf(n:integer):integer;

begin

ifn=1thenf:=1

elseifn=2thenf:=2

elseifn=3thenf:=4

elsef:=f(n-3)+f(n-2)+f(n-1);

end;

begin

read(n);

writeln(f(n));

end.;var

n:longint;

functionf(n:longint):longint;

begin

ifn=1thenexit(1);

ifn=2thenexit(2);

ifn=3thenexit(4);

f:=f(n-1)+f(n-2)+f(n-3);

end;

begin

readln(n);

writeln(f(n));

end.;递归的关键:

1.确定递归公式(关系)

2.确定边界(终止)条件;1、

functionf(m:integer):integer;

varva:integer;

begin

ifm=0thenf:=3

elsef:=f(m-1)+5;

end.

Begin

writeln(f(3));

End.;2、

var

n:longint;

procedurechange(n:longint);

begin

ifn0then

begin

change(ndiv2);

write(nmod2);

end;

end;

begin

readln(n);

change(n);

end.;3、

varn:integer;

proceduref(n:integer);

begin

ifn0then

begin

f(n-1);

write(n);

f(n-1);

end;

end;

begin

f(3);

end.;4、已知ack(m,n)函数的计算公式如下:;varm,n:integer;

functionack(m,n:integer):integer;

begin

ifm=0thenack:=n+1

elseifn=0thenack:=ack(m-1,1)

elseack:=ack(m-1,ack(m,n-1));

end;

begin

read(m,n);

writeln(ack(m,n));

end.;递归的简单应用;问题的提出:

Hanoi塔由n个大小不同的圆盘和3根木柱1,2,3组成。开始时,这n个圆盘由大到小依次套在1柱上,如图所示。

现在要求用最少的移动次数把1柱上n个圆盘按下述规则移到3柱上:

(1)一次只能??一个圆盘;

(2)圆盘只能在3个柱上存放;

(3)在移动过程中,不允许大盘压小盘。

请编程描述移动的过程。。;1:1--3;

第一步:先借助3柱把1柱上面的n-1个盘子移动到2柱上。

第二步:然后再把1柱最下面的一个盘子移动到3柱上。

第三步:再借助1柱把2柱上的n-1个盘子移动到3上。;procedure

您可能关注的文档

文档评论(0)

159****9610 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6044052142000020

1亿VIP精品文档

相关文档