递归实现指数级枚举
1 #include<bits/stdc++.h> 2 using namespace std; 3 int n; 4 bool flag[20]; 5 void dfs(int k) 6 { 7 if(k>n) 8 { 9 for(int i=1;i<=n;i++) 10 if(flag[i]) printf("%d ",i); 11 printf("\n"); 12 return; 13 } 14 dfs(k+1); 15 flag[k]=1; 16 dfs(k+1); 17 flag[k]=0; 18 } 19 int main() 20 { 21 scanf("%d",&n); 22 dfs(1); 23 return 0; 24 }