(Python) División entera y resto


División de enteros y resto

En el módulo "Expresiones aritméticas" hablamos de operaciones de división de enteros.
Recordémoslos de nuevo:
// - división entera, cuando descartamos la parte fraccionaria como resultado de la operación de división
% - cálculo del resto de una división.
La operación de resto para números negativos en  Python se ejecuta de forma un poco diferente a otros lenguajes de programación como C++ o Pascal
En Python, la operación de calcular el resto se realiza según reglas matemáticas, es decir, como comúnmente se cree en la Teoría de Números, el resto es un número no negativo   (artículo muy útil 81_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%BE%D0%BC" target=" _blank">aquí). El signo del resto es el mismo que el signo del divisor.

Ejemplo
c = 10 // 3 # Respuesta: c = 3 d = 10% 3 # Respuesta: d = 1 e = -7 // 4 # Respuesta: e = -2 f = -7% 4 # Respuesta: f = 1 Los valores de las variables e y f resultaron así porque  -7 = (-2*4)+1
¡Necesito recordar!
En Python, la operación de calcular el resto para números negativos se realiza según reglas matemáticas, es decir, \(-7\ \%\ 4 = 1\)< br /> En el lenguaje de programación Python el signo del resto es el mismo que el signo del divisor. 

Las operaciones con enteros son muy importantes en la programación. Deben entenderse y utilizarse correctamente. ¡Y esto requiere práctica!

División de enteros y resto

La necesidad de aplicar la operación de calcular el resto de la división se hace visible cuando se trabaja con las cifras de un número. 
 
Tarea
Se da un número de tres dígitos. Muestre todos los dígitos de este número, empezando por las unidades, y obtenga un nuevo número formado por permutar unidades y centenas.

Siempre pensamos en un número como un todo, pero no olvides que los números se componen de dígitos. ¿Cómo se seleccionan todos los dígitos de un número?
De hecho, todo se resuelve de manera bastante simple, si recuerdas las matemáticas. Y las matemáticas nos dicen que cualquier número se puede descomponer en una suma de dígitos.

Por ejemplo: 365 = 3*100 + 6*10 + 5*1 .
Vemos que cada dígito es un multiplicador del término bit correspondiente. 

Mostraremos cómo convertir cada dígito de un número en una variable separada usando el ejemplo de dividir una columna por el número 10. Tomamos el número 10, porque tenemos un sistema numérico decimal y, en consecuencia, los términos de bit 1, 10, 100, etc.

  

Analizando la figura, se puede ver que  e = n% 10 # operación n % 10 - calcula el último dígito del número n # (es decir, el dígito de las unidades) 365 % 10 = 5 d = n // 10% 10 # operación n // 10 - reduce el número 10 veces, # es decir, descarta el último dígito del número (365 // 10 = 36), # ahora podemos calcular el dígito de las decenas, # aplicando la operación familiar al resultado - # calcular el resto después de dividir por el número 10, 36 % 10 = 6 s = norte // 100 # para obtener el dígito de las centenas, basta con descartar dos dígitos de la derecha del número, # es decir, dos veces dividido por 10 # (n // 10 // 10 o lo mismo que n // 100) 365 // 100 = 3
Teniendo los dígitos del número almacenados en las variables, podemos hacer cualquier otro número a partir de ellos multiplicando el dígito deseado por los factores de bit apropiados (por 1, 10, 100, etc.): 
Por ejemplo, la siguiente línea obtendrá un nuevo número del número original n, con centenas y unidades reorganizadas:
1) el dígito de las unidades (almacenado en  e)  multiplicar por 100
2) el dígito de las decenas (almacenado en la variable d)  multiplicar por 10
3) podemos simplemente multiplicar el dígito de las centenas por 1, o simplemente tomar el valor almacenado en la variable s.
Luego simplemente se deben sumar los valores de los puntos 1, 2 y 3 y obtenemos un nuevo número: n1 = e*100 + d*10 + s;
El programa completo se verá así: n = int(entrada()) e = n% 10 d = n // 10% 10 s = norte // 100 imprimir(e, d, s, e*100 + d*10 + s)