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

सरणी में जोड़े की गणना करें जिसका योग C++ में K से विभाज्य है

हमें पूर्णांक प्रकार के तत्वों की एक सरणी दी गई है और कार्य दिए गए सरणी से जोड़े बनाना है और जोड़ी में तत्वों के योग की गणना करना है और यह जांचना है कि दिया गया योग k से विभाज्य है या नहीं।

इनपुट - int arr[] ={4, 1, 2, 0, 2}, int k =2

आउटपुट − सरणी में ऐसे युग्म गिनें जिनका योग k से विभाज्य है − 2

स्पष्टीकरण - दी गई सरणी से बनने वाले जोड़े हैं:(4, 1) =5(2 से विभाज्य नहीं), (4, 2) =6(2 से विभाज्य), (4, 0) =4(से विभाज्य) 2), (1, 2) =3 (2 से विभाज्य नहीं), (1, 0) =1 (2 से विभाज्य नहीं), (2, 0) =2 (2 से विभाज्य), (2, 2) =4(2 से विभाज्य), (0, 2) =2(2 से विभाज्य)। अतः k द्वारा 2 से विभाज्य योग वाले युग्म हैं (4, 2), (4, 0), (2, 0), (2, 2) और (0, 2)।

इनपुट - int arr[] ={2, 4, 8, 6, 10} , int k =4

आउटपुट − सरणी में ऐसे युग्म गिनें जिनका योग k से विभाज्य है − 4

स्पष्टीकरण - दिए गए सरणी से बनने वाले जोड़े हैं:(2, 4) =6(4 से विभाज्य नहीं), (2, 8) =10(4 से विभाज्य नहीं), (2, 6) =8(विभाज्य 4 से, (2, 10) =12 (4 से विभाज्य), (4, 8) =12 (4 से विभाज्य), (4, 6) =10 (4 से विभाज्य नहीं), (4, 10) =14(4 से विभाज्य नहीं), (8, 6) =14(4 से विभाज्य नहीं), (8, 10) =18(4 से विभाज्य नहीं), (6, 10) =16(4 से विभाज्य)। तो 4 से विभाज्य योग वाले जोड़े (2, 10), (2, 6), (4, 8) और (6, 10) हैं।

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

दी गई समस्या को हल करने के लिए कई दृष्टिकोण हो सकते हैं जैसे कि सरल दृष्टिकोण और कुशल दृष्टिकोण। तो आइए सबसे पहले भोले दृष्टिकोण . को देखें ।

  • पूर्णांक तत्वों की एक सरणी और एक पूर्णांक चर को k के रूप में इनपुट करें, फिर एक सरणी के आकार की गणना करें और डेटा को फ़ंक्शन में पास करें

  • k से विभाज्य योग के साथ जोड़े की संख्या को संग्रहीत करने के लिए एक अस्थायी चर गणना की घोषणा करें।

  • एक सरणी के आकार तक i से 0 तक के लिए लूप प्रारंभ करें

  • लूप के अंदर, एक और लूप फॉर जे से i + 1 तक एक ऐरे के आकार तक शुरू करें

  • लूप के अंदर arr[i] + arr[j] के रूप में योग की गणना करें और IF sum% k ==0 की जांच करें और फिर गिनती को 1 से बढ़ाएं।

  • गिनती लौटाएं

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

कुशल तरीका

  • पूर्णांक तत्वों की एक सरणी इनपुट करें और एक सरणी के आकार की गणना करें और डेटा को फ़ंक्शन में पास करें

  • k से विभाज्य योग के साथ जोड़े की संख्या को संग्रहीत करने के लिए एक अस्थायी चर गणना की घोषणा करें।

  • आकार k की एक सरणी बनाएं क्योंकि हमें k से विभाज्यता की जांच करनी है।

  • एक सरणी के आकार तक i से 0 तक के लिए लूप प्रारंभ करें

  • लूप के अंदर, अस्थायी को arr[i] % k के रूप में सेट करें और सरणी को ++check[temp]

    के रूप में पूर्व-वृद्धि करें
  • गिनती को new_arr[0] * (new_arr[0] - 1)/2

    . के रूप में सेट करें
  • i से 1 तक i <=k/2 और i !=(k-i)

    . तक लूप प्रारंभ करें
  • लूप के अंदर, गिनती को गिनती + new_arr[i] * (new_arr[k - i])

    के रूप में सेट करें
  • IF k% 2 =0 की जाँच करें और फिर गिनती को गिनती + (new_arr[k / 2] * (new_arr[k / 2] - 1)/2)

    के रूप में सेट करें।
  • गिनती लौटाएं

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

उदाहरण (बेवकूफ दृष्टिकोण)

#include <iostream>
using namespace std;
int pair_k(int arr[], int size, int k){
   int count = 0;
   for(int i = 0 ;i <size ; i++){
      for(int j = i+1; j<size; j++){
         int sum = arr[i] + arr[j];
         if(sum % k == 0){
            count++;
         }
      }
   }
   return count;
}
int main(){
   int arr[] = {4, 1, 2, 0, 2};
   int size = sizeof(arr) / sizeof(arr[0]);
   int k = 2;
   cout<<"Count pairs in array whose sum is divisible by 4 are: "<<pair_k(arr, size, k);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count pairs in array whose sum is divisible by k are: 6

उदाहरण (कुशल दृष्टिकोण)

#include <iostream>
using namespace std;
int pair_k(int arr[], int size, int k){
   int temp = 0;
   int count = 0;
   int check[k] = {0};
   for (int i = 0; i < size; i++){
      temp = arr[i] % k;
      ++check[temp];
   }
   count = check[0] * (check[0] - 1) / 2;
   for (int i = 1; i <= k / 2 && i != (k - i); i++){
      count = count + check[i] * (check[k - i]);
   }
   if (k % 2 == 0){
      count = count + (check[k / 2] * (check[k / 2] - 1) / 2);
   }
   return count;
}
int main(){
   int arr[] = {4, 1, 2, 0, 2};
   int size = sizeof(arr) / sizeof(arr[0]);
   int k = 2;
   cout<<"Count pairs in array whose sum is divisible by 4 are: "<<pair_k(arr, size, k);
   return 0;
}

आउटपुट

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -

Count pairs in array whose sum is divisible by k are: 6

  1. उन अलग-अलग युग्मों की संख्या गिनें जिनका योग C++ में दिए गए सरणी में मौजूद है

    हमें किसी भी संबंधित आकार के पूर्णांक मानों की एक सरणी दी गई है, मान लें, arr[] और कार्य किसी दिए गए सरणी में उपलब्ध अलग-अलग जोड़े की संख्या की गणना करना है, जिसका योग भी उसी सरणी में मौजूद है। एक प्रकार की डेटा संरचना को व्यवस्थित करता है जो एक ही प्रकार के तत्वों के एक निश्चित आकार के अनुक्रमिक स

  1. सी ++ में एक सरणी में विभाज्य जोड़े की गणना करें

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

  1. सी ++ में एक सरणी में समग्र तत्वों की गणना और योग

    हमें सकारात्मक पूर्णांकों की एक सरणी दी गई है और कार्य दिए गए सरणी में समग्र तत्वों की गणना और योग की गणना करना है। संयुक्त संख्याएं क्या हैं दिए गए पूर्णांकों के समुच्चय से, वे संख्याएँ जो अभाज्य नहीं हैं, भाज्य संख्याएँ कहलाती हैं, केवल 1 को छोड़कर जो न तो भाज्य है और न ही अभाज्य, बल्कि यह एक इका