संख्याओं की एक सरणी और इनपुट के रूप में एक पूर्णांक x दिया गया है। लक्ष्य arr[] के सभी उपसमुच्चय को इस प्रकार खोजना है कि उस समुच्चय के अलग-अलग तत्वों के साथ-साथ उनका योग x से पूरी तरह से विभाज्य हो।
उदाहरण के लिए
इनपुट
arr[] = {1,2,3,4,5,6} x=3 आउटपुट
Count of subsets that satisfy the given condition :3
स्पष्टीकरण
The subsets will be: [3], [6], [3,6]
इनपुट
arr[] = {1,2,3,4,5,6} x=4 आउटपुट
Count of subsets that satisfy the given condition :1
स्पष्टीकरण
The subsets will be: [4]
नीचे दिए गए कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है -
इस दृष्टिकोण में हम arr[] के तत्वों की गणना करेंगे जो x से पूरी तरह से विभाज्य हैं और फिर 2 गिनती लौटाते हैं -1 सबसेट की आवश्यक संख्या के रूप में।
-
एक पूर्णांक सरणी arr[] लें।
-
इनपुट के रूप में x लें।
-
फ़ंक्शन गिनती (int arr [], int n, int x) एक सरणी और x लेता है और दिए गए शर्त को पूरा करने वाले सबसेट की गिनती देता है।
-
यदि x 1 है तो यह सभी तत्वों को विभाजित करता है, इसलिए वापस लौटें
उदाहरण
#include <bits/stdc++.h>
#define ll long long int
using namespace std;
int sub_sets(int arr[], int size, int val){
int count = 0;
if (val == 1){
count = pow(2, size) − 1;
return count;
}
for (int i = 0; i < size; i++){
if (arr[i] % val == 0){
count++;
}
}
count = pow(2, count) − 1;
return count;
}
int main(){
int arr[] = { 4, 6, 1, 3, 8, 10, 12 }, val = 4;
int size = sizeof(arr) / sizeof(arr[0]);
cout<<"Count of sub−sets that satisfy the given condition are: "<<sub_sets(arr, size, val);
return 0;
} आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count of sub−sets that satisfy the given condition are: 7