Quote Originariamente inviata da Klibion Visualizza il messaggio
Soprattutto mi crea difficoltà il simbolo %, che non riesco ancora a comprendere bene. Sapevo che indicava il resto di una divisione e in questo caso, il numero della divisione per 2, con resto 0
L'operatore % è il resto della divisione. Quindi if (x%2==0) vuol dire una cosa semplice: "se x è pari". Stop, tutto qui.

Quote Originariamente inviata da Klibion Visualizza il messaggio
ma anche con questa informazione non so spiegarmi i risultati.
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.