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