查找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 教师闺蜜祝福语简短