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

C++ में दिए गए योग के साथ सभी जोड़ियों को प्रिंट करें


इस समस्या में, हमें पूर्णांकों की एक सरणी और एक पूर्णांक योग दिया जाता है और हमें पूर्णांकों के उन सभी युग्मों को प्रिंट करना होता है जिनका योग योग मान के बराबर होता है।

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

इनपुट − सरणी ={1, 6, -2, 3} योग =4

आउटपुट - (1, 3) , (6, -2)

यहां, हमें दिए गए योग मान वाले जोड़े चाहिए।

समस्या का एक सरल समाधान उन तत्वों के जोड़े की जाँच करना होगा जो योग उत्पन्न करते हैं। यह ट्रैवर्सिंग एरे द्वारा किया जा सकता है और एरे में वह संख्या ज्ञात करें जो योग मान के बराबर हो।

उदाहरण

यह प्रोग्राम समाधान का वर्णन करेगा -

#include <iostream>
using namespace std;
int printPairsWithSum(int arr[], int n, int sum){
   int count = 0;
   for (int i = 0; i < n; i++)
      for (int j = i + 1; j < n; j++)
         if (arr[i] + arr[j] == sum)
            cout<<"[ "<<arr[i]<<", "<<arr[j]<<" ]\n";
}
int main(){
   int arr[] = {1, 6, -2, 3};
   int n = 4;
   int sum = 4;
   cout<<"Pairs with Sum "<<sum<<" are :\n";
   printPairsWithSum(arr, n, sum);
   return 0;
}

आउटपुट

Pairs with Sum 4 are :
[ 1, 3 ]
[ 6, -2 ]

यह विधि समझने में आसान है लेकिन काफी कारगर नहीं है। दूसरा तरीका हैशिंग का उपयोग करना होगा।

हम एक हैश तालिका शुरू करेंगे और सरणी को पार करें और उसमें जोड़े खोजें। मैच होने पर, हम ऐरे को प्रिंट करेंगे:

उदाहरण

निम्न प्रोग्राम आपको एल्गोरिथम को बेहतर ढंग से समझने में मदद करेगा -

#include <bits/stdc++.h>
using namespace std;
void printPairsWithSum(int arr[], int n, int sum){
   unordered_map<int, int> pair;
   for (int i = 0; i < n; i++) {
      int rem = sum - arr[i];
      if (pair.find(rem) != pair.end()) {
         int count = pair[rem];
         for (int j = 0; j < count; j++)
         cout<<"["<<rem<<", "<<arr[i]<<" ]\n";
      }
      pair[arr[i]]++;
   }
}
int main(){
   int arr[] = {1, 6, -2, 3};
   int n = 4;
   int sum = 4;
   cout<<"The pair with sum is \n";
   printPairsWithSum(arr, n, sum);
   return 0;
}

आउटपुट

Pairs with Sum 4 are :
[ 1, 3 ]
[ 6, -2 ]

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

    इस समस्या में, हमें अद्वितीय पूर्णांकों की एक सरणी और एक योग दिया जाता है। और हमें उन त्रिगुणों को खोजना है जो समान योग बना सकते हैं। आइए समस्या को हल करने के लिए एक उदाहरण लेते हैं - Input : array = {0 , 2 , -1 , 1, -2} Sum = 1 Output : 1 2 -2 0 2 -1 इस समस्या को हल करने के लिए, हम योग प्रदान करन

  1. किसी दिए गए स्ट्रिंग के सभी सबस्ट्रिंग को C++ में प्रिंट करने का प्रोग्राम

    इस ट्यूटोरियल में, हम किसी दिए गए स्ट्रिंग के सभी सबस्ट्रिंग को प्रिंट करने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें एक स्ट्रिंग या वर्णों की एक सरणी दी जाएगी। हमारा काम उस विशेष स्ट्रिंग के सभी सबस्ट्रिंग को प्रिंट करना है। उदाहरण #include<bits/stdc++.h> using namespace std; //prin

  1. C++ में दी गई श्रेणी में सभी पैलिंड्रोम को प्रिंट करने का प्रोग्राम

    इस ट्यूटोरियल में, हम एक निश्चित सीमा में सभी पैलिंड्रोम को प्रिंट करने के कार्यक्रम पर चर्चा करेंगे। इसके लिए हमें गणितीय श्रेणी दी जाएगी जिसमें पैलिंड्रोम पाए जाते हैं। हमारा काम उस सीमा के सभी पैलिंड्रोम को ढूंढना और उसे वापस प्रिंट करना है। उदाहरण #include<iostream> using namespace std; /