एक बड़ी संख्या के दंश को देखते हुए मान लीजिए संख्या और दूसरी बड़ी संख्या मान लीजिए m; कार्य भागफल को विभाजित ऑपरेशन का उपयोग करके और शेष बड़ी संख्या को मापांक का उपयोग करके प्रिंट करना है।
आउटपुट होना चाहिए शेष =xxx; भागफल =yyy
मान लें कि हमारे पास एक इनपुट num =string num ="14598499948265358486" और अन्य इनपुट m =487 है, इसलिए शेष 430 है और भागफल 29976385930729688 है।
उदाहरण
Input: num = “214755974562154868” m = 17 Output: Remainder = 15 quotient = 12632704386009109 Input: num =“214” m = 5 Output: Remainder = 4 Quotient = 42
दृष्टिकोण हम दी गई समस्या को हल करने के लिए उपयोग करेंगे -
- शुरुआत में मॉड को 0 पर सेट करें।
- दाईं ओर से शुरू करके हमें इसे मॉड का उपयोग करके खोजना होगा:mod =(mod * 10 + digit)% m।
- को [i] =mod/m द्वारा भागफल ज्ञात करना, जहां मैं भागफल की स्थिति संख्या है।
एल्गोरिदम
Start Step 1 -> Declare long long ll Step 2 -> In function void quotientremainder(string num, ll m) Declare a vector<int> vec Set ll mod = 0 Loop For i = 0 and i < num.size() and i++ Set digit = num[i] - '0' Set mod = mod * 10 + digit Set quo = mod / m Call vec.push_back(quo) Set mod = mod % m End loop Print remainder value which is in mod Set zeroflag = 0 Loop For i = 0 and i < vec.size() and i++ If vec[i] == 0 && zeroflag == 0 then, Continue End If zeroflag = 1 print the value of vec[i] End For Return Step 3 -> In function int main() Declare and assign num = "14598499948265358486" Declare and assign ll m = 487 Call function quotientremainder(num, m) Stop
उदाहरण
#include <bits/stdc++.h> using namespace std; typedef long long ll; // Function to calculate the modulus void quotientremainder(string num, ll m) { // Store the modulus of big number vector<int> vec; ll mod = 0; // Do step by step division for (int i = 0; i < num.size(); i++) { int digit = num[i] - '0'; // Update modulo by concatenating // current digit. mod = mod * 10 + digit; // Update quotient int quo = mod / m; vec.push_back(quo); // Update mod for next iteration. mod = mod % m; } cout << "\nRemainder : " << mod << "\n"; cout << "Quotient : "; // Flag used to remove starting zeros bool zeroflag = 0; for (int i = 0; i < vec.size(); i++) { if (vec[i] == 0 && zeroflag == 0) continue; zeroflag = 1; cout << vec[i]; } return; } // main block int main() { string num = "14598499948265358486"; ll m = 487; quotientremainder(num, m); return 0; }
आउटपुट
Remainder : 430 Quotient : 29976385930729688