第十三届蓝桥杯Python B 组省赛D题——数位排序

第十三届蓝桥杯Python B 组省赛D题——数位排序_第1张图片第十三届蓝桥杯Python B 组省赛D题——数位排序_第2张图片
样例说明

1 到 13 的排序为: 1,10,2,11,3,12,4,13,5,6,7,8,9 。第 5 个数为 3 。

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int m=sc.nextInt();
        Integer[] arr=new Integer[n];
        for (int i = 0; i < arr.length; i++) {
            arr[i]=i+1;
        }
        Arrays.sort(arr, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                int m=check(o1);
                int n=check(o2);
                if (m!=n){
                    return m-n;
                }else {
                    return o1-o2;
                }
            }
        });
        System.out.println(arr[m-1]);

    }

    public static int check(Integer x){
        int ans=0;
        while (x>0){
            ans+=x%10;
            x/=10;
        }
        return ans;
    }
}
import java.util.*;

public class Main {
    static Map<Integer, List<Integer>> map=new HashMap<>();
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int m=sc.nextInt();
        for (int i=1;i<=n;i++){
            add(check(i),i);
        }
        ArrayList<Integer> list=new ArrayList<>(map.keySet());
        Collections.sort(list);
        for (Integer integer : list) {
             List<Integer> q = map.get(integer);
             if (m>q.size()){
                 m-=q.size();
                 continue;
             }
             Collections.sort(q);
             System.out.println(q.get(m-1));
             break;
        }

    }

    public static void add(int a,int b){
        if (!map.containsKey(a)) map.put(a,new ArrayList<>());
        map.get(a).add(b);
    }

    public static int check(Integer x){
        int ans=0;
        while (x>0){
            ans+=x%10;
            x/=10;
        }
        return ans;
    }
}

你可能感兴趣的:(蓝桥杯,蓝桥杯,java,职场和发展)