/*
Realizar un programa que calcule los números que se van obteniendo a partir de un número natural n siguiendo la siguientes reglas:
Si n es igual a 1, acabar.
Si el número n es impar, pasa a valer 3*n+1
Si el número n es par, pasa a valer n/2
El programa debe leer por la entrada estándar un número natural (se supone que es mayor que 0 y que cabe en 32 bits) y debe imprimir toda la sucesión de números en una línea, el primero debe ser n y cada uno separado por un blanco del siguiente, que se obtienen a partir de él repitiendo las reglas anteriores hasta que valga 1. El número 1 no debe ir seguido de un blanco y debe finalizar la línea de salida.
Ejemplo:
Entrada:
22
Salida:
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
*/
public class TresEnUno{
public static void main (String[] args){
java.util.Scanner scan = new java.util.Scanner(System.in);
int n = scan.nextInt();
if ( n==1 ){
System.out.println(1);
} else { //Supongo n > 1
do{
System.out.print(n+" ");
if (n % 2 == 1){
n = 3*n+1;
} else {
n = n/2;
}
} while (n>1);
System.out.println(1);
}
}
}
Realizar un programa que calcule los números que se van obteniendo a partir de un número natural n siguiendo la siguientes reglas:
Si n es igual a 1, acabar.
Si el número n es impar, pasa a valer 3*n+1
Si el número n es par, pasa a valer n/2
El programa debe leer por la entrada estándar un número natural (se supone que es mayor que 0 y que cabe en 32 bits) y debe imprimir toda la sucesión de números en una línea, el primero debe ser n y cada uno separado por un blanco del siguiente, que se obtienen a partir de él repitiendo las reglas anteriores hasta que valga 1. El número 1 no debe ir seguido de un blanco y debe finalizar la línea de salida.
Ejemplo:
Entrada:
22
Salida:
22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1
*/
public class TresEnUno{
public static void main (String[] args){
java.util.Scanner scan = new java.util.Scanner(System.in);
int n = scan.nextInt();
if ( n==1 ){
System.out.println(1);
} else { //Supongo n > 1
do{
System.out.print(n+" ");
if (n % 2 == 1){
n = 3*n+1;
} else {
n = n/2;
}
} while (n>1);
System.out.println(1);
}
}
}