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

C++ . में अंकों के प्रतिस्थापन के साथ दो संख्याओं से अधिकतम और न्यूनतम राशियाँ

हमें दो धनात्मक संख्याएँ num1 और num2 के साथ दिया गया है। लक्ष्य इन दोनों में अंकों के प्रतिस्थापन के बाद इन दोनों का न्यूनतम योग और अधिकतम योग ज्ञात करना है। हमें दोनों संख्याओं में प्रत्येक संख्या से अंकों को बदलने की अनुमति है। मान लीजिए num1 434 है और num2 324 है और हम अंक 3 को 4 से और अंक 4 को 3 से बदल सकते हैं। तब न्यूनतम योग −333+323=656 होगा और अधिकतम योग 444+424=864 होगा।

आइए अंकों के प्रतिस्थापन 3 के साथ 4 और इसके विपरीत के उदाहरणों के साथ समझते हैं -

इनपुट

num1=3224 num2=4321

आउटपुट

Maximum sum is : 8645
Minimum sum is : 6544

स्पष्टीकरण - दोनों संख्याओं को 4 से बड़ा बनाने के लिए सभी 3s को 4s से बदलना 3 से बड़ा है।

num1 4224 हो जाता है और num2 4421 हो जाता है और योग 8645 हो जाता है, सभी 4s को 3s से बदल दिया जाता है ताकि दोनों संख्याओं को छोटा किया जा सके क्योंकि 3, 4 से कम है।

num1 3223 हो जाता है और num2 3321 हो जाता है और योग 6544 हो जाता है

इनपुट

num1=3111 num2=4111

आउटपुट

Maximum sum is : 8222
Minimum sum is : 6222

स्पष्टीकरण - दोनों संख्याओं को 4 से बड़ा बनाने के लिए सभी 3s को 4s से बदलना 3 से बड़ा है।

num1 4111 हो जाता है और num2 4111 हो जाता है और योग 8222 होता है, सभी 4s को 3s से बदल देता है ताकि दोनों संख्याओं को छोटा किया जा सके क्योंकि 3, 4 से कम है।

num1 3111 हो जाता है और num2 3111 हो जाता है और योग 6222 हो जाता है

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

  • संख्याएँ चर num1 और num2 में मौजूद हैं।

  • फ़ंक्शन कैलकुलेटसम (int n1,int n2) का उपयोग अंकों के प्रतिस्थापन के बाद न्यूनतम और अधिकतम संख्याओं के योग की गणना के लिए किया जाता है।

  • यह पैरामीटर के रूप में दो नंबर n1 और n2 लेता है और minSum और maxSum में संग्रहीत परिणाम प्रदर्शित करता है।

  • सबसे पहले हम दोनों संख्याओं में से प्रत्येक 4 को 3 से प्रतिस्थापित करते हैं और num2 और num2 में क्रमशः दोनों के लिए replace(n1,4,3) और replace(n2,4,3) को कॉल करके नए मानों को संग्रहीत करते हैं।

  • नया num1 और num2 जोड़कर न्यूनतम योग की गणना करें।

  • इसी तरह प्रत्येक 3 को 4 से बदलने के लिए प्रतिस्थापित (n1,3,4) और प्रतिस्थापित (n2,3,4) को कॉल करके उपरोक्त चरणों को दोहराएं और अधिकतम योग की गणना करें।

  • फ़ंक्शन रिप्लेस (इंट एक्स, इंट डिजिट 1, इंट डिजिट 2) एक्स में प्रत्येक डिजिट 1 को डिजिट 2 से बदल देता है और नया नंबर देता है।

  • वेरिएबल नंबर 0 से आरंभिक नई प्राप्त संख्या को संग्रहीत करता है।

  • प्रत्येक पुनरावृत्ति के लिए गुणक को 10 से संग्रहीत करने के लिए temp का उपयोग किया जाता है।

  • हम x को 10 से विभाजित करके और शेष को रेम में जमा करके दाहिने हाथ से प्रत्येक अंक लेंगे।

  • यदि रेम अंक 1 के बराबर है, तो इसे अंक 2 से बदलें। नया नंबर प्राप्त करने के लिए इसे जोड़ें =संख्या + अंक 2 * अस्थायी;

  • अन्यथा कोई परिवर्तन नहीं संख्या =संख्या + रेम * अस्थायी;

  • x को 10 से भाग देकर घटाएँ और गुणक को 10 से बढ़ाएँ। (remp=temp*10)

  • प्राप्त संख्या लौटाएं।

उदाहरण

#include<bits/stdc++.h>
using namespace std;
//replace digit1 with digit2
int replace(int x, int digit1, int digit2){
   int number = 0;
   int temp = 1;
   while (x > 0){
      int rem = x % 10;
      // Required digit found, replace it
      if (rem == digit1)
         number = number + digit2 * temp;
      else
         number = number + rem * temp;
         temp *= 10;
         x = x / 10;
      }
      return number;
   }
   void calculateSum(int n1, int n2){
      //replace 4 by 3
      int num1=replace(n1,4,3);
      int num2=replace(n2,4,3);
      int minSum=num1+num2;
      //replace 3 by 4
      num1=replace(n1,3,4);
      num2=replace(n2,3,4);
      int maxSum=num1+num2;
      std::cout << "Minimum Sum by digit replacement: " << minSum;
      std::cout << "\nMaximum Sum by digit replacement: " << maxSum;
}
int main(){
   int num1 = 3131, num2 = 4141;
   calculateSum(num1, num2);
   return 0;
}

आउटपुट

Minimum Sum by digit replacement: 6262
Maximum Sum by digit replacement: 8282

  1. C++ में किसी सरणी के अंकों से बनने वाली दो संख्याओं का न्यूनतम योग

    विवरण अंकों की एक सरणी को देखते हुए जिसमें 0 से 9 तक के मान होते हैं। कार्य सरणी के अंकों से बनने वाली दो संख्याओं का न्यूनतम संभव योग ज्ञात करना है। कृपया ध्यान दें कि हमें दिए गए सरणी के सभी अंकों का उपयोग करना है उदाहरण यदि इनपुट ऐरे {7, 5, 1, 3, 2, 4} है तो न्यूनतम योग 382 है, क्योंकि हम दो नं

  1. अधिकतम आकार 2 का न्यूनतम विभाजन और C++ में दिए गए मान द्वारा सीमित योग

    समस्या कथन सकारात्मक संख्याओं की एक सरणी गिरफ्तारी [] को देखते हुए, सरणी में सेटों की न्यूनतम संख्या ज्ञात करें जो निम्नलिखित संपत्ति को संतुष्ट करते हैं, एक समुच्चय में अधिकतम दो अवयव हो सकते हैं। दो तत्वों को सन्निहित होने की आवश्यकता नहीं है। सेट के तत्वों का योग दी गई कुंजी से कम या उसके बराबर

  1. सी ++ प्रोग्राम दो संख्याओं को योग और उत्पाद दोनों के साथ खोजने के लिए एन के समान है

    इस ट्यूटोरियल में, हम दो संख्याओं (जैसे ए और बी) को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे, जैसे कि दोनों a+b = N and a*b = N are satisfied. दोनों समीकरणों में से a को हटाने पर हमें b और N में द्विघात समीकरण मिलता है, यानी b2 - bN + N = 0 इस समीकरण के दो मूल होंगे जो हमें a और b दोनों का मान दे