EmpezarEmpieza gratis

Collatz

Un dato curioso de las matemáticas es que reglas sencillas pueden tener grandes consecuencias. Por ejemplo, la conjetura de Collatz pregunta si dos reglas simples pueden reducir cualquier entero a 1.
Suele enunciarse así:

  • Si es par, divide entre 2
  • Si es impar, multiplica por 3 y luego suma 1
    ¡Vamos a probarlo!

Nota: Si tu código se queda sin tiempo, revisa con cuidado la lógica del if-else (o consulta la Pista).

Este ejercicio forma parte del curso

Java intermedio

Ver curso

Instrucciones del ejercicio

  • Escribe la condición de terminación adecuada.
  • Llama a un método para comprobar si n es par.
  • Gestiona correctamente el caso impar: esto solo debe activarse si el n original es impar.

ejercicio interactivo práctico

Prueba este ejercicio completando este código de ejemplo.

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");
  }
}
Editar y ejecutar código