public static void main (String[] args)
{
System.out.println(factorial(5));
}
public int factorial(int n)
{
if(n <= 1){
return 1;
}
else{
return n * factorial(n - 1);
}
}
Ho scritto quanto sopra direttamente qui, quindi potrebbe non essere compilato ma pensarlo.comprensione ricorsione di base
Qualcuno può tranquillamente spiegare come funziona in questo modo che come viene memorizzato? Si inizia calcolando 5 * (5-1), poi giù a 4 * (4-1) poi 3 * (3-1) ..... finché non arriva a 1 che restituirà solo 1 a destra? mi dispiace per essere così abbozzato vorrei solo essere interessati a scoprire come funziona esattamente
grazie
ma come funziona fuori - diventa i valori per le singole fasi
5 * (5 -1) 4 * (4-1) ... ... ...
come sono questi conservati e poi recuperate indietro o mi sto perdendo qualcosa?
5 * ((5-1) * ((4-1) * ((3-1) * ((2-1) * 1)))) – jball
Forse questa domanda ti aiuta: http://stackoverflow.com/questions/1949454/ :-) – Esko
I'd Mi piace commentare che factorials è un * cattivo * esempio di ricorsione. –