集生成和组合问题
不需要输出全排类而是输出组合!!!
我们都知道N个元素-----子集有2的N的次方
我们呢举个栗子
让n==3(a0,a1,a2)
即
代码如下
#include<bits/stdc++.h>
using namespace std;
void print_subset(int n)
{
for(int i = 0; i <(1<<n);i++)//每个i的二进制对应一个子集,一次打印一个子集
{
for(int j = 0; j < n;j++)
if(i&(1<<j))
cout<<j<<" ";
cout << endl;
}
}
int main()
{
int n;
cin>>n;
print_subset(n);
}