Saltar a contenido

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")