हमें दो सरणियाँ दी गई हैं, मान लीजिए arr_1[] और arr_2[] जिनमें पूर्णांक मान हैं और कार्य समान अंक योग वाले विशिष्ट जोड़ों की संख्या की गणना करना है। इसका मतलब है, एक मान arr_1[] से चुना जाना चाहिए और दूसरा मान arr_2[] से एक जोड़ी बनाने के लिए और दोनों मानों का अंक योग समान होना चाहिए।
उदाहरण के लिए
इनपुट - int arr_1[] = {1, 22, 42, 17} Int arr_2[] = {1, 31, 6, 8} आउटपुट - गिनती 4 है
व्याख्या - कुल मिलाकर 4 जोड़े हैं जिनका अंक योग समान है और वे हैं (1, 1), (22, 31), (42, 6) और (17, 8)।
इनपुट - int arr_1[] = {1, 22, 42, 17} Int arr_2[] = {2, 78, 6, 18} आउटपुट - गिनती 1 है
व्याख्या - कुल मिलाकर केवल एक जोड़ा है जिसका अंक योग समान है और वह है (42, 6)।
इनपुट - int arr_1[] = {1, 22, 42, 17} Int arr_2[] = {2, 78, 16, 18} आउटपुट - गिनती 0 है
व्याख्या - कोई जोड़ा नहीं है जिसका अंक योग समान हो इसलिए गिनती 0 है।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण -
दो सरणियाँ बनाएं, मान लीजिए arr_1[] और arr_2[]
length() फंक्शन का उपयोग करके दोनों सरणियों की लंबाई की गणना करें जो सरणी में तत्वों के अनुसार एक पूर्णांक मान लौटाएगा।
एक सेट टाइप चर बनाएं, मान लीजिए st
i को 0 से शुरू करके और i के arr_1[] के आकार से कम होने तक लूप शुरू करें
लूप के अंदर, j को 0 से शुरू करके और j के arr_2[] के आकार से कम होने तक एक और लूप शुरू करें।
जांचें कि क्या Sum(arr[i]) = sum(arr_2[j]) है तो जांचें कि क्या arr_1[i] arr_2[j] से कम है तो insert(make_pair(arr_1[i], arr_2[j]))
अन्यथा, insert(make_pair(arr_2[j], arr_1[i]))।
st.size() लौटाएं
परिणाम प्रिंट करें।
उदाहरण
#include <iostream>
#include <set>
using namespace std;
// संख्या के अंकों का योग ज्ञात करने के लिए फंक्शन
int sumdigits(int n) {
int sum = 0;
while (n > 0) {
sum += n % 10;
n = n / 10;
}
return sum;
}
// जोड़ों की संख्या गिनने के लिए फंक्शन
int paircount(int arr_1[], int arr_2[], int size1, int size2) {
// डुप्लिकेट जोड़ों से बचने के लिए सेट का उपयोग किया जाता है
set<pair<int, int> > myset;
for (int i = 0; i < size1; i++) {
for (int j = 0; j < size2; j++) {
// दोनों तत्वों के अंकों के योग की जांच करें
if (sumdigits(arr_1[i]) == sumdigits(arr_2[j])) {
if (arr_1[i] < arr_2[j]) {
myset.insert(make_pair(arr_1[i], arr_2[j]));
} else {
myset.insert(make_pair(arr_2[j], arr_1[i]));
}
}
}
}
// सेट का आकार लौटाएं
return myset.size();
}
// ड्राइवर कोड
int main() {
int arr_1[] = {1, 22, 42, 17};
int arr_2[] = {5, 31, 6, 8};
int size1 = sizeof(arr_1) / sizeof(arr_1[0]);
int size2 = sizeof(arr_2) / sizeof(arr_2[0]);
cout << "count is " << paircount(arr_1, arr_2, size1, size2);
return 0;
}
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो हमें निम्नलिखित आउटपुट मिलेगा &miuns;
count is 3