Nel seguente esercizio, comparso in un test scritto, mi veniva richiesto che cosa avrebbe stampato la macchina! Purtroppo ho sbagliato a dare le risposte e oggi, provandolo al computer, ricevo in stampa dati che non mi so spiegare! 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, ma anche con questa informazione non so spiegarmi i risultati. Qualcuno mi aiuta?
public class Mainclass {
public static void main(String[] args) {
System.out.println(enigma(1));
System.out.println(enigma(6));
System.out.println(enigma(10));
System.out.println(enigma(11));
}
static int enigma (int x){
if (x<=0) return 0;
if (x%2==0) return enigma(x-1) + x;
return enigma (x-1) - x;
}
}
RISULTATO DI STAMPA:
-1
3
5
-6