Collatz
Um fato curioso da matemática é que regras simples podem gerar grandes consequências. Por exemplo, a Conjectura de Collatz pergunta se duas regras simples podem reduzir qualquer inteiro a 1.
Sua formulação usual é a seguinte:
- Para números pares, divida por 2
- Para números ímpares, multiplique por 3 e depois some 1
Vamos testar isso!
Observação: se você enfrentar estouros de tempo de execução, verifique com cuidado a lógica do seu if-else (ou veja a Dica).
Este exercício faz parte do curso
Java intermediário
Instruções do exercício
- Insira a condição de termino adequada.
- Chame um método para verificar se
né par. - Trate corretamente o caso ímpar — isso só deve acontecer se o
noriginal for ímpar.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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");
}
}