(Python) Divisão inteira e resto


Divisão inteira e resto

No módulo "Expressões aritméticas" falamos sobre operações de divisão inteira.
Vamos lembrá-los novamente:
// - divisão inteira, quando descartamos a parte fracionária como resultado da operação de divisão
% - cálculo do resto de uma divisão.
A operação restante para números negativos em  O Python é executado de maneira um pouco diferente de outras linguagens de programação, como C++ ou Pascal
Em Python, a operação de cálculo do resto é realizada de acordo com regras matemáticas, ou seja, como comumente se acredita na Teoria dos Números, o resto é um número não negativo   (artigo muito útil 81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC" target=" _blank">aqui). O sinal do resto é igual ao sinal do divisor.

Exemplo 
c = 10 // 3 # Resposta: c = 3 d = 10% 3 # Resposta: d = 1 e = -7 // 4 # Resposta: e = -2 f = -7% 4 # Resposta: f = 1 Os valores das variáveis ​​e e f ficaram assim porque  -7 = (-2*4)+1
É preciso lembrar!
Em Python, a operação de cálculo do resto para números negativos é realizada de acordo com regras matemáticas, ou seja, \(-7\ \%\ 4 = 1 \)< br /> Na linguagem de programação Python o sinal de resto é igual ao sinal do divisor. 

As operações com inteiros são muito importantes na programação. Eles precisam ser entendidos e usados ​​corretamente. E isso requer prática!

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