算法1 dfs
时间复杂度o(n)
C++ 代码
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int n;
void dfs(int x,int state){
if(x>n){
for(int i=1;i<=n;i++){
if(state>>i&1){
cout<<i<<" ";
}
}
cout<<endl;
return ;
}
dfs(x+1,state);
dfs(x+1,state|1<<x);
}
int main(){
cin>>n;
dfs(1,0);
return 0;
}