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

C++ में N संख्याओं के दिए गए सरणी से K संख्याओं द्वारा बनाए जा सकने वाले सभी विशिष्ट पूर्णांकों को प्रिंट करें


इस समस्या में, हमें N पूर्णांकों की एक सरणी और एक संख्या K दी जाती है। हमारा कार्य उन सभी विशिष्ट संख्याओं को प्रिंट करना है जो सरणी से किसी भी K तत्व को जोड़कर बनाई जा सकती हैं। किसी भी संख्या को चुनते समय K बार दोहराया जा सकता है।

आइए समस्या को समझने के लिए एक उदाहरण लेते हैं -

Input: array = {2, 5, 13, 9} K = 2
Output: 2,7,15,11,10,18,14,26,22
Explaination: 2 elements added :
2+2=4, 2+5=7, 2+13=15, 2+9=11, 5+5=10, 5+13=18, 5+9=14, 13+13=26, 13+9=22, 9+9=18

इस समस्या को हल करने के लिए, हम सरणी से k तत्व के सभी संयोजन पाएंगे। इसके लिए हम रिकर्सन का इस्तेमाल करेंगे जिसे रिकर्सिवली नंबर जेनरेट करने के लिए कहा जाएगा। डुप्लिकेट मानों से बचने के लिए, हम संख्याओं को एक सेट में संग्रहीत करेंगे।

उदाहरण

कोड हमारे समाधान के कार्यान्वयन को दिखाएगा -

#include <bits/stdc++.h>
using namespace std;
set<int> distNumbers;
void generateNumberFromArray(int count, int arr[], int n, int num, int k) {
   if (k == count) {
      distNumbers.insert(num);
      return;
   }
   for (int i = 0; i < n; i++) {
      generateNumberFromArray(count + 1, arr, n, num + arr[i], k);
   }
}
void printDistinctIntegers(int k, int arr[], int n) {
   generateNumberFromArray(0, arr, n, 0, k);
   cout<<"The "<<distNumbers.size()<<" distinct integers are:\n";
   while (!distNumbers.empty()) {
      cout << *distNumbers.begin() <<"\t";
      distNumbers.erase(*distNumbers.begin());
   }
}
int main() {
   int arr[]={ 2, 5, 13, 9 };
   int n=4;
   int k=2;
   printDistinctIntegers(k, arr, n);
   return 0;
}

आउटपुट

The 9 distinct integers are −
4 7 10 11 14 15 18 22 26

  1. C++ में किसी सरणी में सभी अभाज्य संख्याओं का गुणनफल

    कुछ तत्वों के साथ एक पूर्णांक सरणी arr[] को देखते हुए, कार्य उस संख्याओं की सभी अभाज्य संख्याओं का गुणनफल खोजना है। अभाज्य संख्याएँ वे संख्याएँ होती हैं जिन्हें या तो 1 से या स्वयं संख्या से विभाजित किया जाता है, या एक अभाज्य संख्या एक ऐसी संख्या होती है जो 1 और स्वयं संख्या को छोड़कर किसी अन्य संख

  1. किसी दिए गए स्रोत से गंतव्य तक सभी पथों को C++ में प्रिंट करें

    इस समस्या में हमें एक निर्देशित ग्राफ़ दिया जाता है और हमें स्रोत से ग्राफ़ के गंतव्य तक के सभी पथों को प्रिंट करना होता है। निर्देशित ग्राफ़ किनारों वाला एक ग्राफ़ है जो शीर्ष a से b तक निर्देशित होता है। समस्या को समझने के लिए एक उदाहरण लेते हैं स्रोत =के गंतव्य =पी आउटपुट: K -> T -&

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

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