解法一、DFS
✅ 完整代碼
評分結果(參考) : AC (12ms, 320KB)
#include <bits/stdc++.h>
using namespace std;
int n;
void dfs(string& s, int k, vector<bool>& v){
if(k == n) cout << s << "\n";
for(int i=n; i>0; i--){
if(!v[i]){
s[k] = '0'+i;
v[i] = true;
dfs(s, k+1, v);
v[i] = false;
}
}
}
int main(){
ios::sync_with_stdio();
cin.tie(nullptr);
while(cin >> n){
string s(n, '_');
vector<bool> v(n+1, false);
dfs(s, 0, v);
}
return 0;
}