English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Donné un grand nombre, par exemple num, un autre grand nombre, alors m. La tâche est d'utiliser l'opérateur de division pour imprimer le quotient, et l'opérateur de module pour imprimer le reste d'un grand nombre.
La sortie devrait être Remainder = xxx; Quotient = yyy
Supposons que nous ayons une entrée num = la chaîne de caractères num =" 14598499948265358486", et d'autres entrées m = 487, le reste est430, le quotient est29976385930729688".
Entrée : num ="214755974562154868" m = 17 Sortie : Reste = 15 quotient = 12632704386009109 Entrée : num ="214" m = 5 Sortie : Reste = 4 Quotient = 42
Nous utiliserons pour résoudre le problème donné-
Initialiser mod à 0.
À partir de la droite, nous devons utiliser mod pour le trouver : mod = (mod * 10 + digit) % m.
Par quo [i] = mod / m cherche le quotient, où i est le numéro de position du quotient.
Début Étape 1 -> Déclarer long long ll Étape 2 -> Dans la fonction void quotientremainder(string num, ll m) Déclarer un vector<int> vec Définir ll mod = 0 Boucle pour i = 0 et i < num.size() et i++ Définir digit = num[i] - '0' Définir mod = mod * 10 + digit Définir quo = mod / m Appeler vec.push_back(quo) Définir mod = mod % m Fin de la boucle Imprimer la valeur restante qui est dans mod Définir zeroflag = 0 Boucle pour i = 0 et i < vec.size() et i++ Si vec[i] == 0 et zeroflag == 0 alors, Continuer Fin de l'if zeroflag = 1 Afficher la valeur de vec[i] Fin de la boucle for Retour Étape 3 -> Dans la fonction int main() Declare and assign num = "14598499948265358486" Déclarer et assigner ll m = 487 Appeler la fonction quotientremainder(num, m) Arrêt
#include <bits/stdc++.h> using namespace std; typedef long long ll; //Fonction de calcul du module void quotientremainder(string num, ll m) { //Stocke le module de grand nombre vector<int> vec; ll mod = 0; //Division progressive for (int i = 0; i < num.size(); i++) { int digit = num[i] - "0"; //Mettre à jour le module //Nombre actuel. mod = mod * 10 + digit; //Mettre à jour le quotient int quo = mod / m; vec.push_back(quo); //Mettre à jour mod pour la prochaine itération. mod = mod % m; } cout << "\nRest : " << mod << "\n"; cout << "Quotient : "; //Drapeau utilisé pour supprimer les zéros initiaux bool zeroflag = 0; for (int i = 0; i < vec.size(); i++) { if (vec[i] == 0 && zeroflag == 0) continue; zeroflag = 1; cout << vec[i]; } return; } //Bloc principal int main() { string num = "14598499948265358486"; ll m = 487; quotientremainder(num, m); return 0; }
Résultat de sortie
Rest : 430 Quotient : 29976385930729688