reccurresive.p

来自「pascal-s编译器」· P 代码 · 共 36 行

P
36
字号
const M=200;
type ktyp=array [0:M] of integer;
var m,n,i:integer;
function reccurresive(m,n:integer):integer;
var top,flag:integer;stack:ktyp;
begin
            top:=-1;
           do begin
                    flag:=m*n;
                    if flag <> 0 then begin
                       top:=top+1;
                       stack[top]:=m-1;
                         n:=n-1;
                      end else begin
                     n:=m+n+1;
                   if top>=0
                    then  m:=stack[top];
                  top:=top-1;
                   end;
           end while top>=-1;
         reccurresive:=n;
end;
function F(m,n:integer):integer;
var flag:integer;
begin 
        flag:=m*n;
         if flag=0
         then F:=m+n+1
         else F:=F(m-1,F(m,n-1));
          write(i);i:=i+1; write("  ");//跟踪递归次数 
end;
begin
           m:=3;n:=4;i:=0;
     //    writeln(reccurresive(m,n)); 
            writeln(F(m,n));
end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?