正整数从1到N,输出按照字典序排序的前K个数

时间:2023-03-08 21:22:48
正整数从1到N,输出按照字典序排序的前K个数
#include <iostream>
#include <cassert> using namespace std; const int max_len = ; char a[max_len]; void topK(int n, int m, int& k, int i)
{
if (k <= || i >= m)
return;
for (int j = ; j < ; j++)
{
a[i] = j + '';
a[i+] = '\0';
int v = atoi(a);
if (v > && v <= n && k > )
{
cout << a << endl;
k--;
topK(n, m, k, i+1);
}
}
} void topK(int n, int k)
{
assert(n >= );
int m = ;
int p = n;
while (p > )
{
m++;
p /= ;
}
topK(n, m, k, );
} int main()
{
topK(, );
return ;
}