Código del ejercicio:
Definición de los códigos del ejercicio:
import java.util.Scanner; --> Importación explícita de Scanner.Scanner sc = new Scanner(System.in); --> objeto de Scanner con nombre sc.
Scanner --> clase Scanner nos permite ingresar datos por teclado.
new --> palabra reservada que instancia un objeto de la clase Scanner.
System.in --> parámetro que indica de donde proceden los datos, en este caso del teclado.
System.out.print() --> imprime el texto en la consola y el cursor permanece al final del texto en la consola.
System.out.println() --> imprime el texto en la consola y el cursor permanece al comienzo de la siguiente línea en la consola.
int --> dato entero de 32 bits.
nextInt() --> lee un número entero desde consola (teclado).
while --> el ciclo while recorre un bloque de código siempre que una condición específica sea verdadera.
> --> el operador mayor que ( > ) devuelve true si el operando izquierdo es mayor que el operando derecho.
% --> el operador de modulo ( % ) devuelve el resto de la división.
if --> use if para especificar un bloque de código que se ejecutará, si una condición especificada es verdadera.
else --> use else para especificar un bloque de código a ejecutar, si la misma condición es falsa.
== --> el operador de igualdad ( == ) regresa true si sus operandos son iguales, false en caso contrario.
Explicación del Código:
Este programa solicita un número entero positivo, invierte sus dígitos y luego compara el número invertido con el original. Si ambos son iguales, el número es capicúa; de lo contrario, no lo es.
Código
Scanner sc = new Scanner(System.in);
System.out.print("Ingrese un número: ");
int num = sc.nextInt();
int digito = 0, invertir = 0, aux = num;
while(num > 0){
digito = num % 10;
invertir = (invertir * 10) + digito;
num = (num - digito) / 10;
}
if(invertir == aux){
System.out.println("Es capicúa.");
}else{
System.out.println("No es capicúa.");
}
Explicación de cada parte del código
| Código | Explicación sencilla |
|---|---|
| Scanner sc = new Scanner(System.in); | Crea el lector para que el usuario pueda ingresar datos desde el teclado. |
| System.out.print("Ingrese un número: "); | Muestra un mensaje solicitando un número. |
| int num = sc.nextInt(); | Guarda el número ingresado por el usuario. |
| int digito = 0; | Variable donde se almacenará cada dígito del número. |
| int invertir = 0; | Guardará el número invertido. |
| int aux = num; | Guarda una copia del número original para compararlo al final. |
| while(num > 0) | Repite el proceso mientras el número tenga dígitos. |
| digito = num % 10; | Obtiene el último dígito del número. |
| invertir = (invertir * 10) + digito; | Va formando el número invertido agregando un dígito en cada repetición. |
| num = (num - digito) / 10; | Elimina el último dígito del número para continuar con el siguiente. |
| if(invertir == aux) | Compara el número invertido con el número original. |
| System.out.println("Es capicúa."); | Se ejecuta cuando ambos números son iguales. |
| System.out.println("No es capicúa."); | Se ejecuta cuando los números son diferentes. |
Funcionamiento paso a paso
Ejemplo: El usuario ingresa 12321.
| Valor de num | Último dígito | Número invertido |
|---|---|---|
| 12321 | 1 | 1 |
| 1232 | 2 | 12 |
| 123 | 3 | 123 |
| 12 | 2 | 1232 |
| 1 | 1 | 12321 |
Al finalizar el ciclo, el número invertido es 12321. Como es igual al número original, el programa muestra:
Es capicúa.
Resumen
- Solicita un número al usuario.
- Guarda una copia del número original.
- Extrae los dígitos uno por uno desde el final.
- Construye el número invertido.
- Compara el número original con el invertido.
- Si ambos son iguales, el número es capicúa; si no, no lo es.
No hay comentarios.:
Publicar un comentario