在 C++ 中查找给定集合的所有不同的子集
这里我们将看到如何显示给定集合的所有不同的子集。所以如果集合是 {1, 2, 3},那么子集将是 {}、{1}、{2}、{3}、{1, 2}、{2, 3}、{1, 3}、{1, 2, 3}。所有子集的集合称为幂集。幂集有 2n 个元素。
我们将在 0 到 2n(不包括 2n)之间循环,在每次迭代中,我们将检查当前计数器中的第 i 位是否设置,然后打印第 i 个元素。
示例
#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 }
此广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP