L'operatore % è il resto della divisione. Quindi if (x%2==0) vuol dire una cosa semplice: "se x è pari". Stop, tutto qui.
Il punto è che quel metodo enigma è "ricorsivo", quindi il problema non è tanto il "resto" della divisione ma comprendere e seguire la ricorsione. Data la prima invocazione es. di enigma(6) devi ragionare e "scendere" man mano nei vari eventuali livello di ricorsione.
enigma(6): non è <=0 quindi NON fa return 0. È pari, quindi il return sarà di enigma(5)+6
enigma(5): non è <=0 quindi NON fa return 0. È dispari, quindi il return sarà di enigma(4)-4
ecc...
Quando si arriva al livello per cui non c'è più ricorsione, si ritorna indietro dalle varie invocazioni e quindi si applica quel + o - arrivando poi al risultato finale.
Suggerimento: continua a valutare con l'esempio detto poco fa.


Rispondi quotando