इस समस्या में, हमें एक सरणी दी जाती है और हमें दिए गए आकार r के सभी सबसेट को प्रिंट करना होता है जिसे सरणी के तत्व का उपयोग करके बनाया जा सकता है।
आइए विषय को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं -
Input: array = {3, 5, 6} r = 2 Output: 3 5 3 6 5 6
इस समस्या में, हमें सरणी की संख्याओं के सभी संयोजनों को खोजना होगा। और उन r बिट संयोजनों को बाहर कर दें जो पहले से ही सेट में हैं।
उदाहरण
#include <iostream> using namespace std; void printSubset(int arr[], int n, int r, int index, int data[], int i); int main(){ int arr[] = {3 , 5, 6}; int r = 2; cout<<"The sets are : "; int n = sizeof(arr) / sizeof(arr[0]); int data[r]; printSubset(arr, n, r, 0, data, 0); return 0; } void printSubset(int arr[], int n, int r, int index, int data[], int i){ if (index == r) { for (int j = 0; j < r; j++) cout<<data[j]<<" "; cout<<endl; return; } if (i >= n) return; data[index] = arr[i]; printSubset(arr, n, r, index + 1, data, i + 1); printSubset(arr, n, r, index, data, i + 1); }
आउटपुट
सेट हैं -
3 5 3 6 5 6