Creo que la Conjetura de Collatz ya es conocida. Pero, ¿y si invertimos las reglas?
Comience con un número entero n> = 1.
Repita los siguientes pasos:
Si n es par , multiplíquelo por 3 y agregue 1.
Si n es impar , reste 1 y divídalo por 2.
Pare cuando llegue a 0
Imprime los números iterados.
Casos de prueba:
1 => 1, 0
2 => 2, 7, 3, 1, 0
3 => 3, 1, 0
10 => 10, 31, 15, 7, 3...
14 => 14, 43, 21, 10, ...
Reglas:
Esta secuencia no funciona para muchos números porque entra en un bucle infinito. No necesita manejar esos casos. Solo imprimir los casos de prueba anteriores es suficiente.
Sugerí restar 1 y dividir por dos para dar un número entero válido para continuar, pero no es necesario que se calcule de esa manera. Puede dividir por 2 y convertir a entero o cualquier otro método que dé el resultado esperado.
También debe imprimir la entrada inicial.
La salida no necesita formatearse como los casos de prueba. Era solo una sugerencia. Sin embargo, se debe respetar el orden iterado.
El código más pequeño gana.
0
al final?