Achar Unidade, Dezena, Centena...de um número em Python

Nesse exercício que iremos resolver e comentar o código, vamos aprender a usar o operador %, também conhecido por "resto da divisão", em nossa Apostila de Python Online.



Exercício de Python

"Faça um Programa que leia um número inteiro menor que 1000 e imprima a quantidade de centenas, dezenas e unidades do mesmo.

Exemplo:
123 = 1 centena(s), 2 dezena(s) e 3 unidade(s)
12 = 1 dezena(s) e 2 unidade(s)
Testar com: 326, 300, 100, 320, 310,305, 301, 101, 311, 111, 25, 20, 10, 21, 11, 1, 7 e 16"

Resto da Divisão em Python

Para sabermos o valor da unidade de um número inteiro positivo qualquer, em Python, basta usar o operador de resto da divisão % da seguinte maneira:

unidade = numero % 10

Pronto. Só isso.
Se nosso número é 123 e fizermos 123 % 10, o resultado vai ser 3.
Então 3 é nossa unidade.

E como achar a dezena?

O próximo passo é transformar nosso número de 123 pra 12 (excluímos a unidade).
Primeiro, subtraímos do número o valor da unidade.
123 - 3 = 120

Depois, dividimos o número por 10:
120 / 10 = 12

Prontinho, pra achar a dezena basta fazer: 12 % 10 = 2

Em programação Python, fica assim:
numero = (numero - unidade) / 10 # Passa de 123 pra 123-3 = 120 / 10 = 12
dezena = numero % 10                 # dezena = 12 % 10 = 2

E pra achar o valor da centena?
De novo, transformamos de 12 pra 1 (excluímos 2).

Subtraímos a dezena achada: 12 - 2= 10
E novamente dividimos por 10: 10/10 = 1

Em programação Python:
numero = (numero - dezena)/10
centena = numero

No caso, paramos por aí. Por só queremos achar até a centena.
Nesse ponto, nosso número vai ser o mesmo valor da centena.

Se quiser para números maiores, só seguir essa lógica.




Código comentado em Python

    numero = int(input('Digite um numero inteiro positivo: '))

    # Extraindo a unidade
    unidade = numero % 10

    # Eliminando a unidade de nosso número
    numero = (numero - unidade)/10

    # Extraindo a dezena
    dezena = numero % 10

    # Eliminando a dezena do número original, fica a centena
    numero = (numero - dezena)/10
    centena = numero

    # Fazendo ser inteiros
    dezena = int(dezena)
    centena = int(centena)
    print(centena,'centena(s),',dezena,'dezena(s) e',unidade,'unidade(s)')


Nenhum comentário:

Postar um comentário