Ciao a tutti. Non riesco a capire bene come funziona una funzione ricorsiva e come implementarla. Un esempio di codice ricorsivo:
codice:
long fact(int n)
{
	if(n == 0)
		return(1);
	else
		return(n * fact(n-1));
}
Oltretutto questo è uno degli esempi più semplici, ci sono anche chiamate ricorsive all'interno di cicli while/for che non ho la minima idea di come funzionino

Qualcuno mi riesce a spiegare bene come funziona questo tipo di funzioni, magari anche con qualche esempio diverso da questo? Grazie