función div() en C++

Dado un numerador y un denominador, tenemos que encontrar su cociente y resto sin usar el módulo o el operador de división. La función div() nos permite hacer la misma tarea de manera fácil y eficiente.

Función div(): Devuelve el cociente integral y el resto de la división de un número por un denominador ( number/denom ) como una estructura de tipo div_t, ldiv_t o lldiv_t, que tiene dos miembros: quot y rem. 

Sintaxis: 

div_t div(int numerator, int denominator);
ldiv_t div(long numerator, long denominator);
lldiv_t div(long long numerator, long long denominator);

Cuando usamos la función div(), devuelve una estructura que contiene el cociente y el resto de los parámetros. El primer parámetro pasado en una función div() se toma como numerador y el segundo parámetro se toma como denominador. 

Para valores int, la estructura devuelta es div_t. Esta estructura se ve así: 

C++

typedef struct
    {
    int quot; /* Quotient.  */
    int rem; /* Remainder.  */
} div_t;

De manera similar, para valores largos, se devuelve la estructura ldiv_t y para valores largos, se devuelve la estructura lldiv_t.

C++

ldiv_t:
struct ldiv_t {
    long quot;
    long rem;
};
 
lldiv_t:
struct lldiv_t {
    long long quot;
    long long rem;
};

¿Dónde es útil?

La pregunta es, ya que tenemos operadores % y /, ¿por qué deberíamos usar la función div()?. Bueno, en un programa donde necesitamos tanto el cociente como el resto, usar la función div() sería la mejor opción, ya que calcula ambos valores a la vez, además, requiere menos tiempo en comparación con el uso de las funciones % y / uno. por uno. 
Al usar la función div(), tanto %operator como div() devolverán el mismo valor de resto, es decir, si obtenemos un valor negativo de resto usando %operator, entonces obtendremos un valor negativo de resto usando la función div() también. Por ejemplo, div(-40,3) dará el resto de ‘-1’. . Por lo tanto, la función div() se puede usar de manera eficiente de acuerdo con los requisitos. 

¿Qué sucede cuando el denominador es 0?

Si alguna de las partes de esta función, es decir, el resto o el cociente no puede representarse o no puede encontrar un resultado, entonces toda la estructura muestra un comportamiento indefinido

NOTA: Mientras usa la función div(), recuerde incluir la biblioteca cstdlib.h en su programa. 

Ejemplos: 

Input : div(40, 5)
Output :quot = 8 rem = 0

Input :div(53, 8)
Output :quot = 6 rem = 5

Input : div(-40,3)
Output : quot = -13 , rem = -1

Implementación:

C++

// CPP program to illustrate
// div() function
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main()
{
    div_t result1 = div(100, 6);
 
    cout << "Quotient of 100/6 = " <<
                      result1.quot << endl;
    cout << "Remainder of 100/6 = " <<
                       result1.rem << endl;
 
    ldiv_t result2 = div(19237012L,251L);
 
    cout << "Quotient of 19237012L/251L = " <<
                          result2.quot << endl;
    cout << "Remainder of 19237012L/251L = " <<
                            result2.rem << endl;
 
    return 0;
}

Producción: 

Quotient of 100/6 = 16
Remainder of 100/6 = 4
Quotient of 19237012L/251L = 76641
Remainder of 19237012L/251L = 121

Este artículo es una contribución de Ayush Saxena . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *