jueves, 4 de junio de 2026

Determinar si un número natural es capicúa en C++

Código del ejercicio:

#include <iostream>
#include <clocale>

using namespace std;

int main()
{
    setlocale(LC_CTYPE, "Spanish");
    int digito = 0, invertir = 0, num;
    cout<<"Ingrese un número: "; cin>>num;
    int aux = num;
    while(num > 0){
        digito = num % 10;
        invertir = (invertir * 10) + digito;
        num = (num - digito) / 10;
    }
    if(invertir == aux){
        cout<<"Es capicúa.";
    }else{
        cout<<"No es capicúa.";
    }
    return 0;
}

Definición de los códigos del ejercicio:

#include <iostream> --> significa flujo de entrada-salida estándar. Este archivo de encabezado contiene definiciones de objetos como cin, cout, cerr, etc.
#include <clocale> --> especificador de configuración regional.
using namespace std; --> un espacio de nombres es una colección de nombres o identificadores relacionados (funciones, clases, variables) que ayudan a separar estos identificadores de identificadores similares en otros espacios de nombres o en el espacio de nombres global. Los identificadores de la biblioteca estándar de C++ se definen en un espacio de nombres llamado std.
int --> dato entero de 32 bits.
main() --> la función main() es el punto de entrada de cualquier programa C++. Es el punto en el que se inicia la ejecución del programa. Cuando se ejecuta un programa C++, el control de ejecución va directamente a la función main(). Cada programa C++ tiene una función main().
return 0; --> devolver 0 en la función principal significa que el programa se ejecutó correctamente.
setlocale(); --> sirve para configurar nuestro programa acorde a los parámetros locales de la computadora donde se ejecuta el programa, uno de estos parámetros es el idioma.
LC_CTYPE --> selecciona la categoría de clasificación de caracteres del entorno local.
setlocale(LC_CTYPE, "Spanish"); --> dentro de las comillas del segundo parámetro colocaremos la palabra "Spanish" para que así se utilicen los parámetros hispanos por defecto.
cout<<""; --> se utiliza para mostrar la salida al dispositivo de salida estándar, es decir, monitor.
cin>> --> se utiliza para aceptar la entrada del dispositivo de entrada estándar, es decir, el 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:

Un número capicúa es aquel que se lee igual de izquierda a derecha y de derecha a izquierda.

Ejemplos:

  • 121 → Capicúa
  • 1331 → Capicúa
  • 123 → No es capicúa

Código en C++

#include <iostream>
#include <clocale>

using namespace std;

int main()
{
    setlocale(LC_CTYPE, "Spanish");

    int digito = 0, invertir = 0, num;

    cout<<"Ingrese un número: ";
    cin>>num;

    int aux = num;

    while(num > 0){

        digito = num % 10;

        invertir = (invertir * 10) + digito;

        num = (num - digito) / 10;
    }

    if(invertir == aux){

        cout<<"Es capicúa.";

    }else{

        cout<<"No es capicúa.";
    }

    return 0;
}

Explicación del Código

Código Explicación Simple
#include <iostream> Permite usar cout y cin para mostrar mensajes y leer datos.
#include <clocale> Permite configurar el idioma español.
using namespace std; Evita escribir std:: antes de cout y cin.
int main() Función principal donde inicia el programa.
setlocale(LC_CTYPE, "Spanish"); Configura caracteres y mensajes en español.
int digito = 0, invertir = 0, num; Se crean variables:
  • digito: guarda el último dígito.
  • invertir: almacena el número invertido.
  • num: guarda el número ingresado.
cout<<"Ingrese un número: "; Muestra un mensaje en pantalla.
cin>>num; Lee el número ingresado por el usuario.
int aux = num; Guarda una copia del número original.
while(num > 0) Repite el proceso mientras el número sea mayor que cero.
digito = num % 10; Obtiene el último dígito del número.
invertir = (invertir * 10) + digito; Forma el número invertido.
num = (num - digito) / 10; Elimina el último dígito del número.
if(invertir == aux) Verifica si el número invertido es igual al original.
cout<<"Es capicúa."; Muestra que el número sí es capicúa.
cout<<"No es capicúa."; Muestra que el número no es capicúa.
return 0; Finaliza correctamente el programa.

Funcionamiento Paso a Paso

Ejemplo: número 121

  • Se obtiene el último dígito: 1
  • Número invertido: 1
  • Se obtiene el siguiente dígito: 2
  • Número invertido: 12
  • Se obtiene el último dígito: 1
  • Número invertido final: 121
  • Como el número invertido es igual al original, el número es capicúa.

No hay comentarios.:

Publicar un comentario

Calcular el radio de una circunferencia y que la imprima solo si el radio sede a los 50 cm en C++

Código del ejercicio: #include <iostream> #include <cmath> using namespace std ; int main () {     double cir...

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