查找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 婆婆高寿祝福语大全简短