题目描述
从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。
样例
数据范围
1≤n≤15
输入样例:
3
输出样例:
3
2
2 3
1
1 3
1 2
1 2 3
算法1
时间复杂度
参考文献
C++ 代码
#include<iostream>
#include<cstdio>
using namespace std;
int n;
int st[20];//0表示当前位置还未考虑 1表示选 2表示不选
void dfs(int x){
if(x>n){
for(int i=1;i<=n;i++){
if(st[i]==1){
printf("%d ",i);
}
}
printf("\n");return;
}
st[x]=2;//表示不选上第x位
dfs(x+1);
st[x]=0;//恢复现场
st[x]=1;//表示选上第x位
dfs(x+1);
st[x]=0;
}
int main(){
scanf("%d",&n);
dfs(1);
return 0;
}