哈哈遍历一遍就可以过
(暴力枚举)
只需将1~n的每个值都求一遍数位和 再用结构体存一下
然后排个序即可
时间复杂度o(nlogn)
C++ 代码
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e6+5;
struct Range
{
int x;int ans;
}s[N];
//简单排序
bool cmp(Range a,Range b)
{
if(a.ans==b.ans)return a.x<b.x;
return a.ans<b.ans;
}
//求数位和
int check(int x)
{ int ans=0;
while(x)
{
ans+=x%10;
x/=10;
}
return ans;
}
int main()
{ int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
s[i].x=i;s[i].ans=check(i);
}
sort(s+1,s+1+n,cmp);
cout<<s[m].x;
return 0;
}
强!Orz
hh 你也很强