miércoles, 8 de julio de 2026

Determinar si un número natural es capicúa en Java

Código del ejercicio:

package ejercicio;

import java.util.Scanner;

public class Ejercicio {

    public static void main(String[] args) {
        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.");
        }
    }

}

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

Encontrar todas las posiciones de un carácter x de una cadena en Python

Código del ejercicio: s = input ( "Ingresar texto: " ) x = input ( "Ingresar carácter: ...

Copyright © Ejercicios de programación. Todos los derechos reservados. ❤️