测开,笔试终于ak了一次个位数求和----------------------------------public class Main1 {public static void main(String[] args) {Scanner in = new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别int T = in.nextInt();for(int i = 0; i < T; i++){long n = in.nextLong();System.out.println(fun(n));}}public static long fun(long n){long res = 0L;long tp = n/10;res += 1L*tp*45L;long mod = n % 10;res += mod*(mod+1L)/2L;return res;}}---------------------------------买东西的那一题---------------------------------import java.util.*;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int k = scanner.nextInt();long m = scanner.nextLong();int[] wallets = new int[n];long res = 0L;//余数为k-1,需要补1个,以此类推TreeMap<Integer, Integer> map = new TreeMap<>((a,b)->b.compareTo(a));for (int i = 0; i < n; i++) {wallets[i] = scanner.nextInt();//取余前直接计算能买的数量,后续对余数操作res += wallets[i] / k;wallets[i] = wallets[i] % k;map.put(wallets[i],map.getOrDefault(wallets[i],0)+1);}//遍历直接扣减for (Map.Entry<Integer, Integer> entry : map.entrySet()) {//key为余数,val为数量int key = entry.getKey();int val = entry.getValue();//System.out.println(key +&amp;quot; &amp;quot;+val);//p为当前余数需要补的数量与m比较long p = 1L*(k-key)*(val);if(m >= p){m -= p;res += val;}else{res = res + m/(k-key);m = 0;break;}}//遍历完成且m>0,补在任何位置都可以if(m > 0){res += m/k;}System.out.println(res);}}