#include <bits/stdc++.h> using namespace std; bool check(int num){ int num1 = num; set<int>sett; if(num < 10000) sett.insert(0); while(num){ sett.insert(num%10); num /= 10; } if(sett.size() == 5) return 1; return 0; } int main() { int k; cin >> k; k -= 1; int res = 98765; while(k--){ res -= 1; while(!check(res)){ res--; } } if(res > 10000)cout << res << endl; else cout << 0 << res << endl; }
真是一场酣畅淋漓的暴力啊()从98765往下推即可, 注意遇见例如01234时前补0, 以及在check函数的改善。