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

C++ प्रोग्राम: संख्या 0 बनाने के लिए आवश्यक न्यूनतम संक्रियाएं ढूंढें


मान लीजिए हमारे पास n अंकों वाली एक संख्यात्मक स्ट्रिंग S है। मान लें कि S एक डिजिटल घड़ी को दर्शाता है और पूरी स्ट्रिंग 0 से 10^n - 1 तक एक पूर्णांक दिखाती है। यदि अंकों की संख्या कम है, तो यह अग्रणी 0 दिखाएगा। संक्रियाओं का पालन करें:

  • घड़ी पर संख्या को 1 से घटाएं, या

  • दो अंकों को स्वैप करें

हम चाहते हैं कि घड़ी न्यूनतम संक्रियाओं के साथ 0 दिखाए। हमें ऐसा करने के लिए आवश्यक संक्रियाओं की संख्या गिननी है।

उदाहरण के लिए, यदि इनपुट S = "1000" है, तो आउटपुट 2 होगा, क्योंकि हम पहले 1 को अंतिम 0 के साथ स्वैप कर सकते हैं, तो स्ट्रिंग "0001" होगी अब इसे 1 से घटाकर "0000" प्राप्त करें।

चरण

इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:

n := size of S x := digit at place S[n - 1] for initialize i := 0, when i <= n - 2, update (increase i by 1), do:    if S[i] is not equal to '0', then:       x := x + (digit at place S[i]) + 1 return x

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

#include <bits/stdc++.h> using namespace std; int solve(string S) {    int n = S.size();    int x = S[n - 1] - '0';    for (int i = 0; i <= n - 2; i++)       if (S[i] != '0')          x = x + S[i] + 1 - '0';    return x; } int main() {    string S = "1000";    cout << solve(S) << endl; }

इनपुट

"1000"

आउटपुट

2
  1. - C++ प्रोग्राम ग्राफ को डिस्कनेक्ट करने के लिए काटने के लिए न्यूनतम एजेस की संख्या खोजने के लिए

    इस प्रोग्राम में हमें एक ग्राफ की एज कनेक्टिविटी ढूंढनी है। एक ग्राफ की एज कनेक्टिविटी का अर्थ है यह एक ब्रिज है, इसे हटाने पर ग्राफ डिस्कनेक्ट हो जाएगा। एक डिस्कनेक्टेड अनडायरेक्टेड ग्राफ में ब्रिज को हटाने पर कनेक्टेड कंपोनेंट्स की संख्या बढ़ जाती है। फंक्शन्स और सूडोकोड connections() एक रिकर्सि

  1. - Python में स्ट्रिंग को सॉर्ट करने के लिए न्यूनतम ऑपरेशन ज्ञात करें

    एक स्ट्रिंग s दी गई है। निम्न ऑपरेशन दोहराएं जब तक स्ट्रिंग सॉर्ट न हो जाए: सबसे बड़ा इंडेक्स i ढूंढें जहां 1 ≤ i < len(s) और s[i] < s[i-1] सबसे बड़ा इंडेक्स j ढूंढें जहां i ≤ j < len(s) और सभी k ∈ [i, j] के लिए s[k] < s[i-1] s[i-1] और s[j] को स्वैप करें सफिक्स i से अंत तक रिवर्स करें यह वास्तव मे

  1. - पायथन में एक संख्या को दूसरी संख्या में बदलने के लिए आवश्यक न्यूनतम संक्रियाओं की संख्या खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक संख्या start और एक अन्य संख्या end है (start < end), हमें start को end में बदलने के लिए आवश्यक न्यूनतम संक्रियाओं की संख्या ढूंढनी है इन संक्रियाओं का उपयोग करके: 1 से बढ़ाएं 2 से गुणा करें उदाहरण के लिए, यदि इनपुट है start = 5, end = 11, तो आउटपुट होगा 2, क्योंकि हम 2 से ग