#include <bits/stdc++.h> using namespace std; int main() { int n, m; int per = 0, num = 0, yu = 0;//统计每个数的数位,m位置的数位,从第一个num数位的数字到m的距离 cin >> n >> m; int a[100] = {0};//保存每种数位的数量 for (int i = 0; i <= n; i++) //先全部统计一下 { int t = i; per = 0; while (t) { per += t % 10; t /= 10; } a[per]++; } int locate = 0; for (int i = 1; i < 100; i++) //找一下m位置数字的数位和yu { locate += a[i]; if (locate >= m) { yu = m - locate + a[i] + 1; num = i; break; } } for (int i = 1; i <= n; i++)//用上面求得两个数来找m位置的数 { int t = i; per = 0; while (t) { per += t % 10; t /= 10; } if (per == num) yu--; if (yu == 1) { cout << i; break; } } }