CommencerCommencer gratuitement

Collatz

Un petit fait amusant en mathématiques : des règles très simples peuvent avoir de grandes conséquences. Par exemple, la conjecture de Collatz demande si deux règles simples peuvent ramener n’importe quel entier à 1.
Voici l’énoncé le plus courant :

  • Pour les nombres pairs, diviser par 2
  • Pour les nombres impairs, multiplier par 3 puis ajouter 1
    Voyons cela en pratique !

Remarque : si votre code dépasse le temps d’exécution, vérifiez attentivement la logique de votre structure if-else (ou consultez l’Indice).

Cet exercice fait partie du cours

Java intermédiaire

Afficher le cours

Instructions

  • Saisissez la condition de terminaison appropriée.
  • Appelez une méthode pour vérifier si n est pair.
  • Traitez correctement le cas impair — cela ne doit se produire que si le n d’origine est impair.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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");
  }
}
Modifier et exécuter le code