English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

El C de la fracción y el gran número ++Programa

Dado un gran número, por ejemplo, num, otro gran número, m. La tarea es usar la operación de división para imprimir el cociente, y usar el módulo para imprimir el residuo de un gran número.

La salida debe ser Remainder = xxx; Cociente = yyy

Supongamos que tenemos una entrada num = la cadena num = " 14598499948265358486", y otros ingresos m = 487, entonces el residuo es430, el cociente es29976385930729688".

Ejemplo

Entrada: num = "214755974562154868"
   m = 17
Salida: Resto = 15
   Cociente = 12632704386009109
Entrada: num ="214"
   m = 5
Salida: Resto = 4
   Cociente = 42

Método que utilizaremos para resolver el problema dado-

  • Inicialmente establecer mod en 0.

  • Desde la derecha, debemos usar mod para encontrarlo: mod = (mod * 10 + dígito) % m.

  • A través de quo [i] = mod / m buscar el cociente, donde i es el número de posición del cociente.

Algoritmo

Inicio
   Paso 1 -> Declarar long long ll
   Paso 2 -> En función void quotientremainder(string num, ll m)
      Declarar un vector<int> vec
      Establecer ll mod = 0
      Bucle For i = 0 y i < num.size() y i++
         Establecer dígito = num[i] - '0'
         Establecer mod = mod * 10 + dígito
         Establecer quo = mod / m
         Llamar a vec.push_back(quo)
         Establecer mod = mod % m
      Final del bucle
      Imprimir el valor residual que está en mod
      Establecer zeroflag = 0
      Bucle For i = 0 y i < vec.size() y i++
         Si vec[i] == 0 y zeroflag == 0 entonces,
            Continuar
         Finalizar If
         zeroflag = 1
         Imprimir el valor de vec[i]
      Finalizar For
      Retorno
   Paso 3 -> En la función int main() Declare and assign num = "14598499948265358486"
      Declarar y asignar ll m = 487
      Llame a la función quotientremainder(num, m)
Detener

Ejemplo

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
//Función para calcular el módulo
void quotientremainder(string num, ll m) {
   //Almacenar el módulo de grandes números
   vector<int> vec;
   ll mod = 0;
   //Dividir paso a paso
   for (int i = 0; i < num.size(); i++) {
      int dígito = num[i] - "0";
      //Actualizar el módulo
      //Número actual.
      mod = mod * 10 + dígito;
      //Actualizar el cociente
      int quo = mod / m;
      vec.push_back(quo);
      //Actualizar mod para la próxima iteración.
      mod = mod % m;
   }
   cout << "\nResto: " << mod << "\n";
   cout << "Cociente: ";
   //Para eliminar el cero inicial, se usa el indicador
   bool zeroflag = 0;
   for (int i = 0; i < vec.size(); i++) {
      if (vec[i] == 0 && zeroflag == 0)
         continue;
      zeroflag = 1;
      cout << vec[i];
   }
   return;
}
//Bloque principal
int main() {
   string num = "14598499948265358486";
   ll m = 487;
   quotientremainder(num, m);
   return 0;
}

Resultado de salida

Resto: 430
Cociente: 29976385930729688