Rekurzív algoritmusok - példaprogramok
1.program Faktorialis; uses Crt; var N: integer; function FaktIter(N: integer): longint; {Iterációs megoldás} var i: integer; fakt: longint; begin fakt := 1; for i: = 2 to N do fakt := fakt * i; FaktIter := Fakt end; function FaktRek(N: integer): longint; {Rekurzív megoldás} begin if N = 1 then FaktRek := 1 {Triviális eset} else FaktRek := n * FaktRek(n-1) {Visszavezetés az egyszerűbbre} end; begin ReadLn(N); WriteLn(FaktIter(N)); WriteLn(FaktRek(N)); ReadKey end.2.
program Fibon_Rek; uses Crt; var n: byte; function Fibo(n: byte): integer; begin if (n = 0) or ( n = 1) then Fibo := 1 {Triviális eset} else Fibo := Fibo(n-1) + Fibo(n-2) {Visszavezetés az egyszerűbbre} end; begin ClrScr; ReadLn(n); WriteLn(Fibo(n)); ReadKey end.