Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में संख्या से न्यूनतम निष्कासन ताकि यह 10 की घात K से विभाज्य हो जाए


समस्या कथन

दो धनात्मक पूर्णांक N और K दिए गए हैं। संख्या N से हटाए जा सकने वाले अंकों की न्यूनतम संख्या ज्ञात करें ताकि निष्कासन के बाद संख्या 10^K से विभाज्य हो जाए। यदि असंभव हो तो -1 प्रिंट करें।

उदाहरण

यदि N = 10203027 और K = 2 तो हमें 3 अंक हटाने होंगे। यदि हम 3, 2 और 7 हटाते हैं तो संख्या 10200 बन जाती है जो 10^2 से विभाज्य है

एल्गोरिदम

1. संख्या के अंत से पार करना शुरू करें। यदि वर्तमान अंक शून्य नहीं है, तो काउंटर चर बढ़ाएं, अन्यथा चर K घटाएं 2. यदि K शून्य है, तो उत्तर के रूप में काउंटर वापस करें 3. पूरी संख्या पार करने के बाद, जांचें कि K का वर्तमान मान शून्य है या नहीं। यदि यह शून्य है, तो उत्तर के रूप में काउंटर वापस करें, अन्यथा उत्तर N में अंकों की संख्या -1 के रूप में वापस करें 4. यदि दी गई संख्या में कोई शून्य नहीं है, तो उत्तर के रूप में -1 वापस करें

उदाहरण

#include <bits/stdc++.h> using namespace std; int getBitsToBeRemoved(int n, int k) {    string s = to_string(n);    int result = 0;    int zeroFound = 0;    for (int i = s.size() - 1; i >= 0; --i) {       if (k == 0) {          return result;       }       if (s[i] == '0') {          zeroFound = 1;          --k;       } else {          ++result;       }    }    if (!k) {       return result;    } else if (zeroFound) {       return s.size() - 1;    }    return - 1; } int main() {    int n = 10203027;    int k = 2;    cout << "न्यूनतम आवश्यक निष्कासन = " <<    getBitsToBeRemoved(n, k) << endl;    return 0; }

जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्नलिखित आउटपुट उत्पन्न करता है

आउटपुट

न्यूनतम आवश्यक निष्कासन = 3

  1. - C++ में जांचें कि क्या संख्या को x^y (x की घात y) के रूप में व्यक्त किया जा सकता है

    यहां हम जांचेंगे कि क्या हम किसी संख्या को घात के रूप में दर्शा सकते हैं, जैसे xʸ या नहीं। मान लीजिए संख्या 125 मौजूद है। इसे 5³ के रूप में दर्शाया जा सकता है। एक अन्य संख्या 91 को किसी पूर्णांक मान की घात के रूप में दर्शाया नहीं जा सकता। एल्गोरिदम isRepresentPower(num): Begin if num = 1, then

  1. - C++ में जांचें कि क्या बड़ी संख्या 20 से विभाज्य है

    यहां हम देखेंगे कि कैसे जांचें कि कोई संख्या 20 से विभाज्य है या नहीं। इस मामले में संख्या बहुत बड़ी है। इसलिए हम संख्या को स्ट्रिंग के रूप में रखते हैं। एक संख्या 20 से विभाज्य होगी, जब वह 10 से विभाज्य हो, और 10 से विभाजित करने के बाद, शेष संख्या 2 से विभाज्य हो। तो मामला सरल है। यदि अंतिम अंक 0

  1. - C++ प्रोग्राम: संख्या की घात की गणना करें

    परिचयकिसी संख्या की घात की गणना x^y के रूप में की जा सकती है जहां x संख्या है और y उसकी घात है। उदाहरण के लिए, x = 2 और y = 10, तो x^y = 1024। संख्या की घात की गणना रिकर्सिव और नॉन-रिकर्सिव प्रोग्राम का उपयोग करके की जा सकती है। दोनों नीचे दिए गए हैं। नॉन-रिकर्सिव प्रोग्राम का उपयोग करके संख्या की घ