En este post de programación en Python te mostraré cómo saber si un número es capicúa, es decir, que se lee igual de derecha a izquierda que de izquierda a derecha.
Lo que haremos será comparar el número con su versión invertida, y en caso de que sean iguales, decimos que el número es capicúa.
Vamos a hacer todo esto con puras matemáticas; no vamos a convertir a cadena. Así que se maneja el mismo concepto que el palíndromo pero ahora con números.
Para hacer esto en Python primero debemos tener una función que invierta el número, sin convertirlo a cadena. Ya te expliqué y mostré el código en otro post, mismo que te invito a leer para una mayor explicación.
Como sea, la función queda así:
def invertir_numero(n):
numero = 0
while n != 0:
numero = 10*numero+n % 10
n //= 10
return numero
Ya tenemos la función que invierte el número. Ahora vamos a crear la función que verifica si un número es capicúa, así que simplemente comparamos si el número es igual a su versión invertida, así:
def capicua(numero):
return numero == invertir_numero(numero)
Si te confunde el return
, recuerda que esa función se puede extender a:
def capicua(numero):
numero_invertido = invertir_numero(numero)
if numero == numero_invertido:
return True
else:
return False
Pero lo he dejado así por simplicidad.
Tenemos las dos funciones en Python para saber si un número es capicúa. Ahora vamos a usarlas; aquí te dejo los ejemplos de uso y el código completo:
"""
https://parzibyte.me/blog
"""
def invertir_numero(n):
numero = 0
while n != 0:
numero = 10*numero+n % 10
n //= 10
return numero
def capicua(numero):
return numero == invertir_numero(numero)
# Probar
numeros = [11, 20, 123, 9889, 2811, 1801, 777, 12321, ]
for numero in numeros:
es_capicua = capicua(numero)
print(f"El número {numero} es capicúa? {es_capicua}")
Recuerda que este es mi ejemplo. Tú puedes invocar a la función en cualquier otro lugar, fuera del ciclo, con un número proporcionado por el usuario, etcétera.
Por aquí te dejo más tutoriales de programación en Python.
Hoy te voy a presentar un creador de credenciales que acabo de programar y que…
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Esta web usa cookies.