Definizione iterativa

Esempio
Per N=5
5! = 5*4*3*2*1 = 120
Risp:=1; for I:=N downto 2 do Risp:=Risp*i;
oppure…
Risp:=1; For i:=2 to N do Risp:=Risp*i;
Funzione iterativa
Function FattIter(N: Integer): LongInt; Var i, Risp: LongInt; Begin Risp:=1; For i:=2 to N do Risp:=Risp*i; FattIter:=Risp; End;
Definizione ricorsiva

Oppure, con notazione funzionale

Esempio
Per 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
4! = 4*3! = 4*6 = 24
3! = 3*2! = 3*2 = 6
2! = 2*1! = 2*1 = 2
1! = 1
Function FattRic(N: Integer): LongInt; Begin If(N <; 2) Then FattRic:=1 Else FattRic:=N*FattRic(N-1); End;