子程序的嵌套教程.ppt
文本预览下载声明
;;3.递归调用:
①递归的定义:
Pascal语言中,如果在一个函数、过程等的定义或说明内部又直接或间接地出现有对自身的引用,则称它们是递归的或者是递归定义的。
②递归的实现:
通过函数或过程的调用来实现。
函数或过程直接调用其自身,称为直接递归;函数或过程间接调用其自身,称为间接递归。; 使用递归求解问题,通常可以将一个比较大的问题层层转化为一个与原问题相类似的、规模较小的问题进行求解,最终达到对原问题的求解。;……;Program lx1;
Var a,p:integer;
Function fun (n:integer):integer;
Begin
If n=0 then fun=0
Else if n0 then fun:=fun(n-2)+2
Else fun:=fun(n+3)+3
End;
Begin
Read (a)
P:=fun(a);
Write(p);end.
读入5,输出:
;.program t4;
var m,n:byte;
procedure fen(i,j:byte;s:string);
var k:byte;
s1:string;
begin
if j=1 then writeln(m,=,s,i)
else for k:=1 to i-j+1 do
begin
str(k,s1);
fen(i-k,j-1,s+s1++);
end;
end;
begin
readln(m,n);
fen(m,n, );
end.;例16:有n个半径各不相同的圆盘,按半径从大到小,自下而上依次套在A柱上,另外还有B、C两根空柱。要求将A柱上的n个圆盘全部搬到C柱上去,每次只能搬动一个盘子,且必须始终保持每根柱子上是小盘在上,大盘在下。
显示全部