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

सी ++ कोड संख्या सी और डी बनाने के लिए न्यूनतम संचालन खोजने के लिए

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

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

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

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

हमें a और b को c के बराबर और क्रमशः बनाने के लिए आवश्यक न्यूनतम संक्रियाओं की संख्या ज्ञात करनी है। यदि संभव न हो, तो -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 <bits/stdc++.h>
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. सी++ में सरणी के एक्सओआर को शून्य बनाने के लिए न्यूनतम संचालन

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

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

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

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

    मान लीजिए कि हमारे पास एक सरणी गिरफ्तारी और दूसरा मान k है। हमें सरणी के GCD को k के गुणज के बराबर बनाने के लिए न्यूनतम संख्या में संक्रियाओं का पता लगाना होगा। इस मामले में, ऑपरेशन मूल्य में वृद्धि या कमी कर रहा है। मान लीजिए कि सरणी {4, 5, 6} की तरह है, और k 5 है। हम 4 को 1 से बढ़ा सकते हैं और 6 क