|
Definizione iterativaN! = 1 N = 0, 1 N! = N*(N-1)*...*1 altrimenti Esempio: N=5 N! = 5*4*3*2*1 = 120 Codifica function FattIter(N: Integer): LongInt;
Var
I, Risp: LongInt;
begin
Risp:=1;
for I:=2 to N do // for I:=N downto 2 do
Risp:=Risp*I; // Risp:=Risp*I;
FattIter:=Risp;
end;
Definizione ricorsivaN!=1 N=0, 1 N!=N*(N-1)! altrimenti Oppure Fatt(N) = 1 N = 0, 1 Fatt(N) = N*Fatt(N-1) altrimenti Esempio: N=5 5! = 5*4! = 5*24 = 120 4! = 4*3! = 4*6 = 24 3! = 3*2! = 3*2 = 6 2! = 2*1! = 2*1 = 2 1! = 1 Codifica function FattRic(N: Integer): LongInt;
begin
if(N < 2) then
FattRic:=1
else
FattRic:=N*FattRic(N-1);
end; |
|