Hola querido lector, cómo estáis? Yo la verdad estoy bastante bien, con mucha energía, y nada he estado viendo un par de retos de aceptaelreto.com, y he visto un reto, en el cual voy a aprovechar código de otro tutorial que hice «invertir palabras en Java«, para ello:
110 + 011 = 121
Entrada
Salida
Aquí dejo los pasos para resolver este problema
1) Agarro un número
2) Lo convierto en texto
3) Le doy la vuelta
4)Lo convierto en Entero y lo comparo con el original
Aquí les dejo el código:
int numeroFacilitado;
int numOri;
int numeroInvertido;
Scanner sca = new Scanner(System.in);
String stringFacilitado;
String stringInvertido;
int longitud;
boolean repetir = true;
boolean lychrel = true;
int maximo = 100000;
int contador = 0;
try {
System.out.println(«Escríbame algún número:»);
numeroFacilitado = sca.nextInt();
numOri = numeroFacilitado;
stringFacilitado = numeroFacilitado + «»;
do {
stringInvertido = «»;
stringFacilitado = numeroFacilitado + «»;
longitud = (int) stringFacilitado.length() – 1;
do {
stringInvertido = stringInvertido + stringFacilitado.charAt(longitud);//nos devuele el carácter en la posición
longitud = longitud – 1;//vamos restando posiciones
} while (longitud >= 0);
numeroInvertido = Integer.parseInt(stringInvertido);
if (numeroInvertido == numeroFacilitado) {
System.out.println(numOri + » » + numeroFacilitado + » en » + (contador) + » iteraciones»);
lychrel = false;
repetir = false;
}
numeroFacilitado = numeroFacilitado + numeroInvertido;
contador = contador + 1;
} while (contador < maximo && repetir);
if (lychrel == true) {
System.out.println(«Lychrel?»);
}
} catch (Exception ex) {
System.out.println(«Debes de poner un número válido»);
}
Bueno espero que os haya gustado y entretenido, si quieres recibir más contenido similar te recomiendo que te suscribas a mi página en facebook que está al principio de esta web.
FUENTE
https://www.aceptaelreto.com/problem/statement.php?id=205