(C++) División entera y resto


División de enteros y resto

En el módulo "Expresiones aritméticas" hablamos sobre las características de la operación de división en el lenguaje C++.
Recuerde que para datos enteros (tipo int) se pueden usar dos operaciones de división.
/ - 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.
 
¡Necesito recordar!
En C y C++, el resultado de dividir un número entero por otro número entero – siempre es un número entero, el resto se descarta al dividir.
 

Ejemplo
int a,b; a = 10; b = 3; intc = a/b; // Respuesta: c = 3 int d = a%b; // Respuesta: d = 1
Estas operaciones son muy importantes en la programación. Deben entenderse y utilizarse correctamente. 

¡Practica, programa más y más y tendrás éxito!

 

Calcular dígitos de un número

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 proporciona un número de tres dígitos. Muestre todos los dígitos de este número y obtenga un nuevo número formado por permutación de unidades y centenas.

La pregunta más difícil que surge para los principiantes es cómo descomponer un número en sus dígitos constituyentes.
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 dígito correspondiente del número. 
Vamos a mostrar cómo obtener cada dígito de un número en una variable separada. Considere el procedimiento de división  una columna del número 365 por el número 10  (tomamos el número 10, porque tenemos un sistema numérico decimal y, en consecuencia, tenemos términos de dígitos 1, 10, 100, etc.).
  

Después de analizar 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 la división por el número 10, 36% 10 = 6 s = n/100; // para obtener el dígito de las centenas, basta con descartar dos dígitos de la derecha del número,   // es decir, dividir por 10 dos veces (n/10/10 o igual que n/100) 365/100 = 3
Habiendo recibido todos los dígitos del número, podemos hacer otro número con ellos multiplicando el dígito deseado por el dígito correspondiente: & nbsp; por ejemplo, la siguiente línea obtendrá un nuevo número del número original n, con centenas y unidades reorganizadas:
1) el número de unidades (almacenadas en la variable e)  multiplicado 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 se deben sumar los valores de los puntos 1, 2 y 3 y obtenemos un nuevo número: n1 = e * 100 + d * 10 + s; Todo el programa se verá así:
  #includeiostream> utilizando el espacio de nombres estándar; principal() { int n, e, d, s; cin>> norte; e = n % 10; d = n/10% 10; s = n/100; cout << e<< " " << d<< " " << s<< " " << (e * 100 + d * 10 + s); }