查找C ++中给定集合的所有不同子集
在这里,我们将看到如何显示给定集合的所有不同子集。因此,如果集合为{1、2、3},则子集将为{},{1},{2},{3},{1、2},{2、3},{1、3},{1,2,3}。所有子集的集合称为幂集。幂集具有2n个元素。
我们将遍历0到2n(不包括),在每次迭代中,我们将检查当前计数器中的第i位是否已设置,然后输出ith元素。
示例
#include<iostream>
#include<cmath>
using namespace std;
void showPowerSet(char *set, int set_length) {
unsigned int size = pow(2, set_length);
for(int counter = 0; counter < size; counter++) {
cout << "{";
for(int j = 0; j < size; j++) {
if(counter & (1<<j))
cout << set[j] << " ";
}
cout << "}" << endl;
}
}
int main() {
char set[] = {'a','b','c'};
showPowerSet(set, 3);
}输出结果
{}
{a }
{b }
{a b }
{c }
{a c }
{b c }
{a b c }热门推荐
10 圣诞祝福语简短小学
11 祖国七十华诞简短祝福语
12 老师送的祝福语简短
13 生日祝福语大全女生简短
14 祝女性生日祝福语简短
15 牛年女神节祝福语简短
16 情人表白祝福语简短大气
17 老公开业祝福语简短
18 官宣新年祝福语简短