92. 遞歸實現指數型枚舉 - AcWing題庫
每個數有選和不選兩種情況
我們把每個數看成每層,可以畫出一個遞歸搜索樹
葉子節點就是我們的答案
很容易寫出每dfs函數
dfs傳入一個u表示層數
當層數大于我們n時,去判斷每個數字的選擇情況,輸出被選的數字
#include <bits/stdc++.h>
using namespace std;const int N = 20;int n;
bool vis[N];void dfs(int u)
{if (u > n) {for (int i = 1;i <= n;i++){if (vis[i]){cout << i << ' ';}}cout << '\n';}else {vis[u] = true;dfs(u+1);vis[u] = false;dfs(u+1);}
}int main()
{cin >> n;dfs(1);return 0;
}