枚举每一个数选与不选
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 20;
int n;
int ans[N];
bool st[N];
void dfs(int x,int cnt)
{
if(x>n)
{
for(int i=1;i<=cnt;i++) printf("%d ",ans[i]);
puts("");
return;
}
dfs(x+1,cnt);
ans[++cnt]=x;
dfs(x+1,cnt);
}
int main()
{
scanf("%d", &n);
dfs(1,0);
}