查找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 生日广州男生祝福语简短