题目描述
blablabla
样例
blablabla
暴力
先算出范围内所有数的位数和,然后排序,最后直接输出
但是摩登版(乐)
C++ 代码
#include <bits/stdc++.h>
using namespace std;
using LL = long long;
vector<pair<LL, int>> q;
int n, m;
int main()
{
cin >> n >> m;
for(int i = 1; i <= n; i ++){
string s(to_string(i));
q.push_back(make_pair(accumulate(s.begin(), s.end(), 0LL, [](LL c, char x){return c + x - '0';}), i));
}
sort(q.begin(), q.end());
cout << q[m - 1].second << endl;
}
pair
类会默认按先first
再second
升序排列,所以不用额外写比较函数了accumulate(s.begin(), s.end(), 0LL, [](LL c, char x){return c + x - '0';}
的作用就是对一个string类的整数求位数和