Sto studiando Python e mi sono imbattuto in questo esercizio.
Allegato all'esercizio svolto viene mostrato una descrizione del flusso del programma dove n=3:Codice PHP:
def Fattoriale(n):
if n == 0:
return 1
else:
FattorialeMenoUno = Fattoriale(n-1)
Risultato = n * FattorialeMenoUno
return Risultato
1.Dato che 3 non è 0, seguiamo il ramo else e calcoliamo il fattoriale di n=3-1=2...
2.Dato che 2 non è 0, seguiamo il ramo else e calcoliamo il fattoriale di n=2-1=1...
3.Dato che 1 non è 0, seguiamo il ramo else e calcoliamo il fattoriale di n=1-1=0...
4.Dato che 0 è 0 ritorniamo 1 senza effettuare ulteriori chiamate ricorsive.
5.Il valore di ritorno (1) è moltiplicato per n (1) e il risultato (1) restituito alla funzione chiamante.
6.Il valore di ritorno (1) è moltiplicato per n (2) e il risultato (2) restituito alla funzione chiamante.
7.Il valore di ritorno (2) è moltiplicato per n (3) e il risultato (6) diventa il valore di ritorno della funzione che ha fatto partire l'intero processo.
Sinceramente questo esercizio che senz'altro sarà banale mi resta difficile capirlo. In particolare non spiego il passaggio dal punto 3 al punto 4 e come poi si svilippi nei passaggi successivi.
C'è qualcuno in grado di essere più chiaro?
P.S. La formula del fattoriale è la seguente n! = n (n-1)!
Esempio: 3! = 3*2*1 = 6 e 5! = 5*4*3*2*1 = 120
Grazie a tutti coloro che mi risponderanno!