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

C++ में अंकों के समान योग वाले दो सरणियों से अलग-अलग युग्मों की गणना करें

हमें दो सरणियों के साथ दिया गया है, मान लीजिए, arr_1[] और arr_2[] पूर्णांक मान रखते हैं और कार्य समान अंकों के योग वाले अलग-अलग जोड़े की गणना करना है। इसका अर्थ है, एक मान को arr_1[] से चुना जाना चाहिए और दूसरा मान arr_2[] से एक जोड़ी बनाने के लिए चुना जाना चाहिए और दोनों मानों का योग अंक समान होना चाहिए।

एक प्रकार की डेटा संरचना को व्यवस्थित करता है जो एक ही प्रकार के तत्वों के एक निश्चित आकार के अनुक्रमिक संग्रह को संग्रहीत कर सकता है। डेटा के संग्रह को संग्रहीत करने के लिए एक सरणी का उपयोग किया जाता है, लेकिन एक सरणी को उसी प्रकार के चर के संग्रह के रूप में सोचना अक्सर अधिक उपयोगी होता है।

उदाहरण के लिए

Input − int arr_1[] = {1, 22, 42, 17}
   Int arr_2[] = {1, 31, 6, 8}
Output − count is 4

स्पष्टीकरण - कुल मिलाकर 4 जोड़े हैं जिनके अंकों का योग समान है और वे (1, 1), (22, 31), (42, 6) और (17, 8) हैं।

Input − int arr_1[] = {1, 22, 42, 17}
   Int arr_2[] = {2, 78, 6, 18}
Output − count is 1

स्पष्टीकरण - कुल मिलाकर केवल एक युग्म है जिसमें अंकों का योग समान है और वह है (42, 6)।

Input − int arr_1[] = {1, 22, 42, 17}
   Int arr_2[] = {2, 78, 16, 18}
Output − count is 0

स्पष्टीकरण - ऐसा कोई युग्म नहीं है जिसके अंकों का योग समान हो, इसलिए गिनती 0 है।

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

  • दो सरणियाँ बनाएँ मान लें, arr_1[] और arr_2[]

  • लंबाई () फ़ंक्शन का उपयोग करके दोनों सरणियों की लंबाई की गणना करें जो एक सरणी में तत्वों के अनुसार एक पूर्णांक मान लौटाएगा।

  • एक सेट प्रकार वैरिएबल बनाएं मान लें कि सेंट

  • i से 0 के लिए लूप प्रारंभ करें और arr_1 के आकार से कम []

  • लूप के अंदर, j से 0 और arr_2[] के आकार से कम j के लिए एक और लूप प्रारंभ करें।

  • जांचें कि क्या Sum(arr[i]) =sum(arr_2[j]) फिर जांचें कि क्या arr_1[i] arr_2[j] से कम है, फिर डालें(make_pair(arr_1[i], arr_2[j])

  • अन्यथा, सम्मिलित करें(make_pair(arr_2[j], arr_1[i]).

  • वापसी st.size ()

  • परिणाम प्रिंट करें।

उदाहरण

#include <iostream>
#include <set>
using namespace std;
// Function to find the
// sum of digits of a number
int sumdigits(int n){
   int sum = 0;
   while (n > 0){
      sum += n % 10;
      n = n / 10;
   }
   return sum;
}
//function to count the number of pairs
int paircount(int arr_1[], int arr_2[], int size1, int size2){
   // set is used to avoid duplicate pairs
   set<pair<int, int> > myset;
   for (int i = 0; i < size1; i++){
      for (int j = 0; j < size2; j++){
         // check sum of digits
         // of both the elements
         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 size of the set
   return myset.size();
}
// Driver code
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

  1. C++ में योग विभाज्य 'k' वाले उप-मैट्रिस की गणना करें

    इनपुट के रूप में एक पंक्ति x col मैट्रिक्स को देखते हुए। लक्ष्य मैट्रिक्स [पंक्ति] [col] के भीतर सभी सबमैट्रिस को ढूंढना है, जैसे कि उस सबमैट्रिक्स के तत्वों का योग पूर्णांक k से विभाज्य है। यदि मैट्रिक्स मैट[3][3] है और k 4 है तो सबमैट्रिस नीचे दिखाए गए अनुसार होंगे:- आइए उदाहरणों से समझते हैं।

  1. C++ प्रोग्राम में क्रम में दो सरणियों से तत्वों को चुनकर अधिकतम योग

    इस समस्या में, हमें दो सरणियाँ arr1[] और arr2[], और दो संख्याएँN और M दी जाती हैं। N, arr1 से लिए गए तत्वों की संख्या देता है। M arr2 से लिए गए तत्वों की संख्या देता है। हमें arr1[i] से arr2[i] में से किसी एक तत्व का चयन करना होगा, जिसके लिए योग को अधिकतम बनाता है, लेकिन अधिकतम N को arr1 और M से

  1. दो बीएसटी से जोड़े की गणना करें जिनकी राशि सी ++ में दिए गए मान x के बराबर है

    हमें इनपुट के रूप में दो बाइनरी सर्च ट्री और एक वेरिएबल x दिया गया है। लक्ष्य प्रत्येक पेड़ से नोड्स के जोड़े को ढूंढना है ताकि नोड्स के मूल्य का योग x के बराबर हो। BST_1 से नोड 1 और BST_2 से नोड 2 लें और दोनों का डेटा भाग जोड़ें। यदि योग =x. वेतन वृद्धि की संख्या। आइए उदाहरणों से समझते हैं। इनपुट