在C ++中打印给定大小的所有子集
在这个问题中,我们得到一个数组,我们必须打印给定大小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
热门推荐
10 诗词送行祝福语大全简短
11 新房开工吉日祝福语简短
12 50多岁生日简短祝福语
13 安徽疫情祝福语简短英语
14 农民朋友发财祝福语简短
15 对生活祝福语简短精辟
16 搬家词简短祝福语朋友
17 女神结婚快乐祝福语简短
18 文学短句祝福语大全简短