Invertir número
Realice un programa que dado un \(n\) de entrada haga lo siguiente:
- Cuente el número de dígitos
- Muestre el número invertido
- Indique si el número es capicúa, es decir, se lee igual de izquierda a derecha que de derecha a izquierda.
Ejemplos
n: 0
Dígitos: 1
Invertido: 0
Es capicua
n: 1234
Dígitos: 4
Invertido: 4321
No es capicua
n: 123454321
Dígitos: 9
Invertido: 123454321
Es capicua
Solución
# Funcion para contar
def contar(n):
# Si n es 0 hay un digito
if n == 0:
return 1
else: # En otro caso
i = 0
# Dividimos por 10 mientras n > 0
while n > 0:
n //= 10
i += 1 # Conteo de digitols
return i
# Funcion para invertir
def invertir(n):
m = 0 # Variable a retornar
while n > 0: # Repetimos mientras n sea mayor a 0 (podamos obtener resto distinto de 0)
m = m * 10 + n % 10 # Generamos el con el digito de la derecha de n + 10 veces el m anterior
n //= 10 # Removemos el valor de la derecha
return m
# Funcion capicua
def capicua(n):
return n == invertir(n)
# Entrada
n = int(input("n: "))
# Salida
print("Dígitos:", contar(n))
print("Invertido:", invertir(n))
if capicua(n):
print("Es capicua")
else:
print("No es capicua")