|
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; |
|