92. 递归实现指数型枚举
错误点
- 调用df函数应用小括号 , 写的过程中写成中括号了
vis[k] = true;
df(k + 1);
vis[k] = false;
df(k + 1);
完整代码
#include<iostream>
using namespace std;
const int num = 20;
bool vis[num];
int n ;
void df(int k){//第几层就是筛选第几个数字
if(k > n){
for(int i = 1 ; i <= n ; i++)
if(vis[i])
printf("%d " , i);
printf("\n");
return ;
}
else{
vis[k] = true;
df(k + 1);
vis[k] = false;
df(k + 1);
}
}
int main(){
cin >> n;
df(1);
return 0;
}