Allora evidentemente non ho compreso bene la ricorsione! Da quanto ho capito la ricorsione si usa quando bisogna affrontare calcoli complessi come i fattoriali o la sucessioni di fibonacci. In poche parole sospende il metodo principale, esegue quello invocato e poi conclude il tutto.
In questo caso passo al metodo principale una variabile X dal valore prestabilito. Per far un esempio concreto, prendo in esame il valore "6". Partendo dal fatto che tutti i valori dell'esercizio sono maggiori di 0 e che quindi il metodo non ritornerà mai all'inizio, prendo in considerazione i seguenti passaggi:
if (x%2==0) return enigma(x-1) + x;
=> significa che se il resto della divisione è 0 e che quindi X è pari, devo ritornare il metodo con (x-1) + x:
Ergo se il numero scelto è 6 devo fare (6-1)+6=11
return enigma (x-1) - x;
}
=> questo passaggio viene saltato e si passa alla stampa che è 11!
MA a me viene 3 non 11, perché?

Rispondi quotando
