En este programa, aprenderá a verificar si un número es palíndromo o no en Java. Esto se hace usando el bucle for y while.
Para comprender este ejemplo, debe tener el conocimiento de los siguientes temas de programación de Java:
- Declaración if … else de Java
- Java while y do… while Loop
- Java para Loop
Ejemplo 1: Programa para comprobar palíndromo utilizando el bucle while
public class Palindrome ( public static void main(String() args) ( int num = 121, reversedInteger = 0, remainder, originalInteger; originalInteger = num; // reversed integer is stored in variable while( num != 0 ) ( remainder = num % 10; reversedInteger = reversedInteger * 10 + remainder; num /= 10; ) // palindrome if orignalInteger and reversedInteger are equal if (originalInteger == reversedInteger) System.out.println(originalInteger + " is a palindrome."); else System.out.println(originalInteger + " is not a palindrome."); ) )
Salida
121 es un número palíndromo.
En este programa,
- Primero, el valor de un número dado (num) se almacena en otra variable entera, originalInteger. Esto se debe a que necesitamos comparar los valores del número invertido y el número original al final.
- Luego, se usa un ciclo while para recorrer num hasta que sea igual a 0.
- En cada iteración, el último dígito de num se almacena en el resto.
- Luego, el resto se suma a reversedInteger de modo que se suma al siguiente valor posicional (multiplicación por 10).
- Luego, el último dígito se elimina de num después de la división por 10.
- Finalmente, se comparan reversedInteger y originalInteger. Si es igual, es un número palíndromo. Si no, no lo es.
Estos son los pasos de ejecución que tienen lugar:
Pasos de ejecución del palíndromonum | num! = 0 | recordatorio | reversedInteger |
---|---|---|---|
121 | cierto | 1 | 0 * 10 + 1 = 1 |
12 | cierto | 2 | 1 * 10 + 2 = 12 |
1 | cierto | 1 | 12 * 10 + 1 = 121 |
0 | falso | - | 121 |
Ejemplo 2: Programa para comprobar palíndromo utilizando el bucle for
public class Palindrome ( public static void main(String() args) ( int num = 11221, reversedInteger = 0, remainder, originalInteger; originalInteger = num; // reversed integer is stored in variable for( ;num != 0; num /= 10 ) ( remainder = num % 10; reversedInteger = reversedInteger * 10 + remainder; ) // palindrome if orignalInteger and reversedInteger are equal if (originalInteger == reversedInteger) System.out.println(originalInteger + " is a palindrome."); else System.out.println(originalInteger + " is not a palindrome."); ) )
Salida
11221 no es un palíndromo.
En el programa anterior, se usa un bucle for en lugar de un bucle while.
En cada iteración, num /= 10
se ejecuta y num !=0
se comprueba la condición .