इस समस्या में, हमें आकार m की दो सॉर्ट की गई सरणी arr1[] और arr2[] और एक तत्व N दिया जाता है। हमारा कार्य दो सरणियों के योग से बने समुच्चय में Nवां आइटम ढूंढना है।
कोड विवरण – यहां, हम एक समुच्चय बनाएंगे जिसमें arr1 का एक तत्व और arr2 का एक तत्व का योग होता है यानी sum = arr1[i] + arr2[j], जहां i, j < m हैं। N के लिए, हमें समुच्चय के Nवें तत्व का मान ढूंढना है।
आइए एक उदाहरण से समस्या को समझते हैं,
इनपुट
arr1[] = {3, 1, 5} , arr2[] = {6, 2, 8} , N = 4आउटपुट
व्याख्या
समुच्चय के तत्व हैं –
9 (3+6 और 1 +8) , 5 (3 + 2) , 11 (3+8, 5+6), 7 (1+6, 5+2), 3 (1+2), 13 (5+8). चौथा तत्व 7 है।
समाधान दृष्टिकोण
समाधान दृष्टिकोण सरणियों के तत्वों का योग ढूंढकर समुच्चय के तत्वों को ढूंढना है। इसके लिए, हम नेस्टेड लूप का उपयोग करेंगे, बाहरी लूप arr1 के तत्वों पर पुनरावृति करेगा और आंतरिक लूप arr2 के तत्वों पर पुनरावृति करेगा। और आंतरिक लूप की प्रत्येक पुनरावृत्ति के लिए, हम योग को समुच्चय में स्टोर करेंगे, जो डुप्लिकेट तत्वों की अनुमति नहीं देगा। सभी योग मान भरने के बाद, हम समुच्चय को पार करेंगे और Nवां तत्व वापस करेंगे।
हमारे समाधान की कार्यप्रणाली को दर्शाने वाला प्रोग्राम,
उदाहरण
#include <iostream> using namespace std; void calcSumVariables(int sum[], int n) { float SUMX = 0; for (int i = 0; i < n; i++) { SUMX += sum[i]; } SUMX /= (n - 1); for (int i = 0; i < n; i++) cout<<"\nx"<<(i + 1)<<" = "<<(SUMX - sum[i]); } int main(){ int sum[] = {3, 8, 6, 7, 4, 5, 9 }; int N = sizeof(sum) / sizeof(sum[0]); cout<<"The value of variables that form the sum are "; calcSumVariables(sum, N); return 0; }आउटपुट
The value of variables that form the sum are x1 = 4 x2 = -1 x3 = 1 x4 = 0 x5 = 3 x6 = 2 x7 = -2