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.