#include <iostream>
#include <stdio.h>
using namespace std;
void func(char c, string s, char array[]);
int n;
int main() {
while(scanf("%d", &n)) {
char array[n + 1];
for(int i = 0; i < n + 1; i++) {
array[i] = '0' + i;
}
for(int i = n; i >= 1; i--) {
func(array[i], "", array);
}
}
return 0;
}
void func(char c, string s, char array[]) {
for(int i = 0; i < s.size(); i++) {
if(s[i] == c) return;
}
s += c;
if(s.size() == n) {
cout << s << "\n";
return;
}
for(int i = n; i >= 1; i--) {
func(array[i], s, array);
}
}
不好意思,我嘗試用每個都走過,只是太慢了。
請問有沒有什麼更好的作法呢?