Power Set(bits)

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     char set[]={'a','b','c'};
 7     int sizeSet=sizeof(set)/sizeof(set[0]);
 8 
 9     int sizePowset=pow(2,sizeSet);
10     int cnt=0;//统计输出的子集个数
11     for(int i=0;i<sizePowset;i++)
12     {
13         for(int j=0;j<sizeSet;j++)// 对于0-7这8个数总过检测三个bit所以有此循环
14        {
15             if(i&(1<<j))//左移是检测2_1_0_三个bit上是否为1
16                 cout<<set[j];// 如果当前bit为1则输出对应bit位在集合中元素
17         }
18         cout<<endl;
19         cnt++;
20     }
21     cout<<cnt<<endl;
22     return 0;
23 }

猜你喜欢

转载自www.cnblogs.com/chuanwen-tech/p/10653244.html