AcWing 4653. 数位排序( java实现 )
原题链接
简单
作者:
nighoc
,
2023-03-28 13:40:33
,
所有人可见
,
阅读 111
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
final int N = 1000010;
Integer[] q = new Integer[N];
Integer[] s = new Integer[N];
int n, m;
int sum(int x) {
int res = 0;
while(x > 0) {
int t = x % 10;
res += t;
x /= 10;
}
return res;
}
public Main(){
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
m = scanner.nextInt();
scanner.close();
for (int i = 1; i <= n; i++) {
q[i] = i;
s[q[i]] = sum(q[i]);
}
Arrays.sort(q, 1, n + 1, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if(s[o1] != s[o2]) {
return s[o1] - s[o2];
}else {
return o1 - o2;
}
}
});
// System.out.println(Arrays.toString(Arrays.copyOf(q, 15)));
System.out.println(q[m]);
}
public static void main(String[] args){
new Main();
}
}