Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Fattoriale

Precedente
SUPERIORE
Successiva

Definizione iterativa

N! = 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 ricorsiva

N!=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;

Fattoriale - ApPuNtIdIuNiNfOrMaTiCo

Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Precedente
SUPERIORE
Successiva