思路:
集合S={ 2,4,5,1} ; 易知S共有2^4 = 16 个子集
将集合元素个数4换成4位二级制数:XXXX,每一位对应集合中相对应的元素
0000 代表{}
0001 代表{1}
0010 代表{5}
0011 代表{5,1}
0100 代表{4}
0101 代表{4,1}
.
.
.
.
1111代表{2,4,5,1}
则2^4 个子集可以由此表示
pseudo-code:
// 集合S由n个元素,集合O为输出集合,临时集合T,二进制位数有1的下标记作i
for(i=0;i<2^N;i++) {
for(n;n>=0;n--)
{
创建T
if(i & 1 == 1) {
T.add(S(i