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

C++ कोड: संख्याओं c और d बनाने के लिए न्यूनतम ऑपरेशन खोजें


मान लीजिए हमारे पास दो संख्याएं c और d हैं। अमल के पास दो संख्याएं a और b हैं जो प्रारंभ में दोनों शून्य हैं। अमल उन पर कुछ ऑपरेशन करना चाहता है। प्रत्येक ऑपरेशन करने से पहले, कुछ धनात्मक पूर्णांक k चुना जाता है, जिसका उपयोग फिर निम्नलिखित ऑपरेशन में से एक को करने के लिए किया जाता है:

  • संख्या k को a और b दोनों में जोड़ें, या

  • संख्या k को a में जोड़ें और b से k घटाएं, या

  • संख्या k को b में जोड़ें और a से k घटाएं।

हमें a और b को क्रमशः c और d के बराबर बनाने के लिए आवश्यक न्यूनतम ऑपरेशन की संख्या ढूंढनी है। यदि संभव नहीं है, तो -1 वापस करें।

उदाहरण के लिए, यदि इनपुट c = 3; d = 5 है, तो आउटपुट 2 होगा, क्योंकि k = 1 के लिए, हमें संख्याएं (1, 1) मिलती हैं, k = 8 के लिए, युग्म (-7, 9) हो सकता है, k = 7 के लिए, यह (0, 2) हो सकता है और k = 3 के लिए, यह (3, 5) हो सकता है।

चरण

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

if (c ^ d) is odd, then:     return -1 otherwise when c is same as 0 and d is same as 0, then:     return 0 otherwise when c is same as d, then:     return 1 Otherwise     return 2

उदाहरण

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

#include  using namespace std; int solve(int c, int d){     if ((c ^ d) & 1)         return -1;     else if (c == 0 && d == 0)         return 0;     else if (c == d)         return 1;     else         return 2; } int main(){     int c = 3;     int d = 5;     cout << solve(c, d) << endl; }

इनपुट

3, 5

आउटपुट

2

  1. - C++ में ऐरे के XOR को शून्य बनाने के लिए न्यूनतम ऑपरेशन्स

    समस्या विवरण हमें n एलिमेंट्स का एक ऐरे दिया गया है। कार्य पूरे ऐरे का XOR 0 बनाना है। हम इसे प्राप्त करने के लिए निम्नलिखित कर सकते हैं। हम किसी एक एलिमेंट का चयन कर सकते हैं - एलिमेंट का चयन करने के बाद, हम इसे 1 से बढ़ा या घटा सकते हैं। हमें चयनित एलिमेंट के लिए पूरे ऐरे के XOR योग को शून्य बनान

  1. - C++ में सभी 1s को बाएं और 0s को दाएं करने के लिए न्यूनतम फ्लिप्स

    समस्या विवरण एक बाइनरी स्ट्रिंग दी गई है जिसमें हम बाएं भाग में सभी 1s और दाएं भाग में सभी 0s को फ्लिप कर सकते हैं। कार्य सभी 1s को बाएं और सभी 0s को दाएं करने के लिए आवश्यक न्यूनतम फ्लिप्स की गणना करना है। उदाहरण दी गई बाइनरी स्ट्रिंग 0010101 है। इस स्ट्रिंग में 3 1-बिट्स और 4 0-बिट्स हैं। हमें नीच

  1. - C++ में सरणी के GCD को k का गुणक बनाने के लिए न्यूनतम ऑपरेशन

    मान लीजिए हमारे पास एक सरणी arr और एक अन्य मान k है। हमें सरणी के GCD को k का गुणक बनाने के लिए न्यूनतम ऑपरेशंस की संख्या ढूंढनी है। यहां ऑपरेशन मान को बढ़ाना या घटाना है। मान लीजिए सरणी {4, 5, 6} है, और k 5 है। हम 4 को 1 से बढ़ा सकते हैं, और 6 को 1 से घटा सकते हैं, तो यह 5 बन जाता है। यहां ऑपरेशंस