在这里,我们将看到如何显示给定集合的所有不同子集。因此,如果集合为{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 }