secondo me, il modo più semplice di avvolgere la tua testa attorno alla ricorsione sta iniziando dalla fine.
In ogni funzione ricorsiva, c'è una condizione di arresto. Nel tuo caso è else return 0;
quindi il metodo restituirà 0 se l'argomento è zero o inferiore. È semplice Ora andiamo indietro.
Sappiamo che num(0)
restituisce 0
senza fare altro. Quindi ora possiamo capire che cos'è num(1)
. num(1)
chiamerà num(0)
(che restituirà 0 e non farà nient'altro), quindi stamperà x
che è 1
. Ora possiamo tornare indietro e guardare num(2)
. num(2)
chiamerà num(1)
, che abbiamo già coperto e quindi stampa 2
, quindi possiamo guardare num(3)
ecc.
Quindi per ogni numero% dix
, num (x) stamperà semplicemente tutti i numeri da 1
a x
.