public class Main {
static int[] arr = new int[1000010];
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
int n = scan.nextInt();
int m = scan.nextInt();
ArrayList<Node>list = new ArrayList<>();
for (int i = 1; i <=n; i++) {
list.add(new Node(i));
}
Collections.sort(list);
System.out.println(list.get(m-1).num);
}
}
class Node implements Comparable<Node>{
int num;
int sum;
public Node(int num) {
this.num = num;
this.sum = calc(num);
}
public int calc(int num) {
int sum1 = 0;
while (num>0) {
sum1+=num%10;
num/=10;
}
return sum1;
}
@Override
public int compareTo(Node o) {
// TODO Auto-generated method stub
if (o.sum>this.sum) {
return -1;
}else if (o.sum==this.sum) {
if (o.num>this.num) {
return -1;
}else {
return 1;
}
}
return 1;
}
}
数位排序-蓝桥杯
于 2024-03-31 10:24:46 首次发布
这篇文章展示了如何在Java中使用ArrayList存储Node对象,实现节点按照sum属性进行排序,并获取第m个节点的sum值。Node类包含num和sum属性,通过compareTo方法实现了Comparable接口进行比较。
摘要由CSDN通过智能技术生成