Fattoriale ricorsivo

Definizione ricorsiva
n!=left{ begin{array}{ll}1&n=0,1\ n(n-1)! & text{altrimenti}end{array} right
oppure

f(n)=left{ begin{array}{ll}1&n=0,1\ ncdot f(n-1) & text{altrimenti}end{array} right

Per N=5

5!=5*4!
     4!=4*3!
          3!=3*2!
               2!=2*1!
                    1!=1
               2!=2*1=2
          3!=3*2=6
     4!=4*6=24
5!=5*24=120

Codifica

def fatt(n):
    if(n == 0) or (n == 1):
        return 1
    else:
        return n*fatt(n-1)