看了其他人的题解,感觉都挺复杂。我来个简单易懂的,五重循环搞定。
#include <iostream>
using namespace std;
int main() {
int k;
cin >> k;
for (int a = 9; a >= 0; --a) {
for (int b = 9; b >= 0; --b) {
if (a == b) continue;
for (int c = 9; c >= 0; --c) {
if (a == c || b == c) continue;
for (int d = 9; d >= 0; --d) {
if (a == d || b == d || c == d) continue;
for (int e = 9; e >= 0; --e) {
if (a == e || b == e || c == e || d == e) continue;
if (--k == 0) {
cout << a << b << c << d << e;
}
}
}
}
}
}
}
// 64 位输出请用 printf("%lld")



京公网安备 11010502036488号