Collatz
Un petit fait amusant en mathématiques : des règles simples peuvent avoir de grandes conséquences. Par exemple, la conjecture de Collatz demande si deux règles très simples peuvent ramener n'importe quel entier à 1.
On l'énonce généralement ainsi :
- Pour un nombre pair, le diviser par 2
- Pour un nombre impair, le multiplier par 3 puis ajouter 1
Mettons-la à l'épreuve !
Remarque : Si votre code dépasse le délai d'exécution, vérifiez attentivement la logique de votre structure if-else (ou consultez l'Indice).
Cette activité fait partie du cours
Java intermédiaire
Instructions de l’exercice
- Indiquez la condition de terminaison appropriée.
- Appelez une méthode pour vérifier si
nest pair. - Traitez correctement le cas impair — cela ne devrait se produire que si la valeur initiale de
nest impaire.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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");
}
}