//本题思路:
// 1.cin输入树状图顶端的个数
// 2.dfs枚举树状图每个分支末端,即所有可能
// 3.分析树的分支并进行回溯
include[HTML_REMOVED]
using namespace std;
const int N=16; //N表示数据的范围
int n,s[N];
void dfs(int u){ //u表示正在做的数
if(u>n){
for(int i=1;i<=n;i++) //i用来枚举数组的每一位
if(s[i]==1) cout<<i<<” “; ``
cout<<endl;
return;
}
s[u]=0;
dfs(u+1);
s[u]=2;
s[u]=1;
dfs(u+1);
s[u]=2;
}
int main()
{
cin>>n; //n表示输入的数,s[N]表示每个位置的状态,1为有,0为无,2为空
dfs(1);
return 0;
}