《六年級(jí)信息技術(shù)上冊(cè) 第13課 遞歸調(diào)用課件 遼師大版(三起)》由會(huì)員分享,可在線閱讀,更多相關(guān)《六年級(jí)信息技術(shù)上冊(cè) 第13課 遞歸調(diào)用課件 遼師大版(三起)(8頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、遞歸調(diào)用 使用遞歸求解問(wèn)題,通??梢詫⒁粋€(gè)比較大的問(wèn)題層層轉(zhuǎn)化為一個(gè)與原問(wèn)題相類似的、規(guī)模較小的問(wèn)題進(jìn)行求解,最終達(dá)到對(duì)原問(wèn)題的求解。 用遞歸計(jì)算n!n!可以由下列公式表示:n!1 n=0n(n-1)! n0分析:把求n!轉(zhuǎn)化為求(n-1)!的問(wèn)題,因?yàn)椋╪-1)!乘上n就是n!。而求(n-1)!又可以轉(zhuǎn)化為求(n-2)!的問(wèn)題,.最后歸結(jié)到求0!的問(wèn)題,而0!已定義為1。由0!=1又一步步反上去求出1!,2!,.直到求出n!。Program p7_20(input,output); var n:integer; s:integer;Function fac(a:integer):intege
2、r;Begin if a=0 then fac:=1 else fac:=a*fac(a-1);End;BeginReadln(n);S:=fac(n);Writeln(n,!=,s)End. 能用遞歸算法求解的問(wèn)題一般應(yīng)該滿足如下要求: 符合遞歸的描述:需要解決的問(wèn)題可以化為子問(wèn)題求解,而子問(wèn)題求解的方法與原問(wèn)題相同,只是數(shù)量增大或減少; 遞歸調(diào)用的次數(shù)是有限的; 必須有遞歸結(jié)束的條件。用遞歸方法求兩個(gè)數(shù)M和N 的最大公約數(shù)Program p7_21(input,output);Var m,n,g:integer;Function gcd(m,n:integer):integer; var
3、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.輸入一串以!結(jié)束的字符,按逆序輸出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:in
4、teger;Function up(var n:integer):integer;Forward;Function down(var n:integer):integer; begin n:=n div 2; writeln(n,in down); if n1 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.運(yùn)行:運(yùn)行:Input x:63 in down10 in up5 in down16 in up8 in down4 in down2 in down2 in downok