Collatz
Un fatto curioso della matematica è che regole semplici possono avere grandi conseguenze. Per esempio, la congettura di Collatz chiede se due regole semplici possano ridurre qualsiasi intero a 1.
Di solito si enuncia così:
- Per i numeri pari, dimezza dividendo per 2
- Per i numeri dispari, moltiplica per 3 e poi aggiungi 1
Mettiamola alla prova!
Nota: se riscontri timeout del codice, controlla con attenzione la logica dell'istruzione if-else (o leggi il Suggerimento).
Questo esercizio fa parte del corso
Java intermedio
Istruzioni dell'esercizio
- Inserisci la condizione di terminazione corretta.
- Chiama un metodo per verificare se
nè pari. - Gestisci correttamente il caso dispari: questo deve attivarsi solo se il
noriginale è dispari.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
class Collatz {
static boolean isEven(int n) {
return n % 2 == 0;
}
public static void main(String[] args) {
int n = 1634;
int i = 0;
System.out.print(n);
// Enter the appropriate termination condition
while (____) {
// Call a method to check if n is even
if (____(n)) {
System.out.println(" is even");
n /= 2;
} // Handle the odd case correctly. All non-even integers are odd
____ {
System.out.println(" is odd");
n = n * 3 + 1;
}
System.out.print(n);
i += 1;
}
System.out.println(" reached in " + i + " steps");
}
}