电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

六年级信息技术上册 第13课 递归调用课件 辽师大版(三起)

六年级信息技术上册 第13课 递归调用课件 辽师大版(三起)六年级信息技术上册 第13课 递归调用课件 辽师大版(三起)六年级信息技术上册 第13课 递归调用课件 辽师大版(三起)
递归调用• 使用递归求解问题,通常可以将一个比较大的问题层层转化为一个与原问题相类似的、规模较小的问题进行求解,最终达到对原问题的求解。 • 用递归计算 n !n !可以由下列公式表示:n !1 n=0n(n-1)! n>0分析:把求 n !转化为求( n-1 )!的问题,因为( n-1 )!乘上 n 就是 n !。而求( n-1 )!又可以转化为求( n-2 )!的问题,… . 最后归结到求 0 !的问题,而 0 !已定义为 1 。由 0 ! =1 又一步步反上去求出 1 !, 2 !,… . 直到求出 n !。Program p7_20(input,output); var n:integer; s:integer;Function fac(a:integer):integer;Begin if a=0 then fac:=1 else fac:=a*fac(a-1);End;BeginReadln(n);S:=fac(n);Writeln(n,’!=’,s)End. 能用递归算法求解的问题一般应该满足如下要求:• 符合递归的描述:需要解决的问题可以化为子问题求解,而子问题求解的方法与原问题相同,只是数量增大或减少;• 递归调用的次数是有限的;• 必须有递归结束的条件。用递归方法求两个数 m 和 n 的最大公约数Program p7_21(input,output);Var m,n,g:integer;Function gcd(m,n:integer):integer; var r:integer; begin r:=m mod n; if r=0 then gcd:=n else gcd:=gcd(n,r);End;Begin read(m,n);g:=gcd(m,n);Writeln(‘m=’,m,’n=’,n,’gcd=’,g);End.输入一串以‘!’结束的字符,按逆序输出Program p7_22(input,output);Procedure rever; var c:char;Begin read(c); if c<>’!’ then rever; write(c);End;Begin rever;End.Program p7_23(input,output);Var x:integer;Function up(var n:integer):integer;Forward;Function down(var n:integer):integer; begin n:=n div 2; writeln(n,’in down’); if n<>1 then n:=up(n);End;Function up;Begin while(n mod 2)<>0 do begin n:=n*3+1;Writeln(n,’in up’);End;N:=down(n);End;BeginWrite(‘input x:’);Readln(x);X:=up(x);Writeln(‘ok’)End.运行:Input x:63 in down10 in up5 in down16 in up8 in down4 in down2 in down2 in downok

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

六年级信息技术上册 第13课 递归调用课件 辽师大版(三起)

您可能关注的文档

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部