Divisão inteira e resto
A necessidade de aplicar a operação de cálculo do resto da divisão é visível quando se trabalha com os dígitos de um número.
Tarefa
É fornecido um número de três dígitos. Exiba todos os dígitos desse número, começando com unidades, e obtenha um novo número formado pela permuta de unidades e centenas.
Sempre pensamos em um número como um todo, mas não esqueça que os números são formados por algarismos. Como você seleciona todos os dígitos de um número?
Na verdade, tudo é resolvido de forma bastante simples, se você se lembrar da matemática. E a matemática nos diz que qualquer número pode ser decomposto em uma soma de termos de dígitos.
Por exemplo:
365 = 3*100 + 6*10 + 5*1
.
Vemos que cada dígito é um multiplicador do termo de bit correspondente.
Mostraremos como obter cada dígito de um número em uma variável separada usando o exemplo da divisão por uma coluna pelo número 10. Tomamos o número 10, porque temos um sistema numérico decimal e, consequentemente, os termos de bit 1, 10, 100, etc.
Analisando a figura, você pode ver que
e = n% 10
# operação n % 10 - calcula o último dígito do número n
# (ou seja, o dígito das unidades) 365 % 10 = 5
d = n // 10% 10
# operação n // 10 - reduz o número em 10 vezes,
# ou seja, descarta o último dígito do número (365 // 10 = 36),
# agora podemos calcular o algarismo das dezenas,
# aplicando a operação familiar ao resultado -
# calcula o resto depois de dividir pelo número 10, 36 % 10 = 6
s = n // 100
# para obter o algarismo das centenas, basta descartar dois algarismos à direita do número,
# ou seja, duas vezes dividido por 10
# (n // 10 // 10 ou o mesmo que n // 100) 365 // 100 = 3 forte>
Tendo os dígitos do número armazenados nas variáveis, podemos fazer qualquer outro número deles multiplicando o dígito desejado pelos fatores de bit apropriados (por 1, 10, 100, etc.):
Por exemplo, a linha abaixo obterá um novo número a partir do número original n
, com centenas e unidades reorganizadas:
1) o dígito das unidades (armazenado no e
) multiplique por 100
,
2) o dígito das dezenas (armazenado na variável d
) multiplique por 10
,
3) podemos simplesmente multiplicar o dígito das centenas por 1
, ou simplesmente pegar o valor armazenado na variável s
.
Então os valores dos pontos 1, 2 e 3 devem ser simplesmente somados e obtemos um novo número:
n1 = e*100 + d*10 + s;
O programa completo ficará assim:
n = int(entrada())
e = n% 10
d = n // 10% 10
s = n // 100
print(e, d, s, e*100 + d*10 + s)