La logica l'ho capita ma non riesco a capire come possa funzionare una funzione ricorsiva che ogni volta ha un return che dovrebbe finire nella variabile n=funzione_ricorsiva(variabile).
Ogni volta che la funzione viene invocata da se stessa non dovrebbe "sovrascrivere" n ?
Inoltre se ogni chiamata ricorsiva "crea la stessa funzione ma a sè stante" come fa a sommare 1 ogni volta e a tenere la conta degli 1 precedentemente sommati?