最近在看暴力,学习了一些形成子集的方法觉得二进制形成子集是比较好的一种方法
#include <iostream>
#include <cstdio>
#include <iomanip>
#include <algorithm>
using namespace std;
const int maxn = 100 + 10;
int A[maxn] = {0};
void Print(int n, int s)
{
for(int i = 0; i < n; i++)
{
if(s&(1 << i))
printf("%d ",i);
}
printf("\n");
}
int main()
{
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
int num;
scanf("%d",&num);
for(int i = 0; i < (1 << num); i++) //分别输出0 到 2n-1次方
{
Print(num,i);
}
return 0;
}