1
题目:给定一个长度为N的数组A,请你先从小到大输出它的每个元素,在从大到小输出它的每个元素。
示例输入
5
1 3 2 6 5
输出
1 2 3 5 6
6 5 3 2 1
package AAA;import java.util.*;public class Main5 {public static void main(String args[]) {Scanner scanner=new Scanner(System.in);int n=scanner.nextInt();//从控制台接受输入的数据Integer[] a=new Integer[n];//初始化数组for(int i=0;i<n;i++) {a[i]=scanner.nextInt();}//数组赋初值Arrays.sort(a);for(int x:a) {System.out.print(x+" ");//循环遍历数组}Arrays.sort(a,(o1,o2)->o2-o1);System.out.println();//换行for(int x:a) {System.out.print(x+" ");//循环遍历数组}}}
2
题目:设有n个正整数1....n,将他们链接成一排,相邻数字首尾相接,组成一个最大的整数。
示例:
3
12 321 343
输出
34332112
package AAA; import java.util.*;public class Mian6 {public static void main(String args[]) {Scanner scanner=new Scanner(System.in);int n=scanner.nextInt();String str[]=new String[n];for(int i=0;i<n;i++) {str[i]=scanner.next();}//好像无法使用增强for循环,数据类型不一致,i是整数类型,str是字符串类型Arrays.sort(str,(o1,o2)->(o2).compareTo(o1));//实现升序StringBuilder str1=new StringBuilder();for(String x:str) {//遍历str将str数组中的数据添加到str1中str1.append(x);}System.out.println(str1);}}
3
题目 小蓝对一个数的数位之和很感兴趣,今天他要按照数位之和给数排序。当两个数个位数之和不同时,将数位和较小的排在前面,当数位之和相等时,将数值小的排在前面。
例如,2022排在409前面,因为2022的数位之和位6,小于409的数位之和13.又如,6排在2022前面,因为他们的数位之和相同,而6小于2022
给定正整数n,m请问对1到n采用这种方法排序时,排在第m个元素时多少。
示例
13
5
输出
3
package AAA;import java.util.*;public class Main8 {public static void main(String args[]) {Scanner scanner=new Scanner(System.in);int n1 =scanner.nextInt();int n2=scanner.nextInt();int [][]f=new int [n1][2];for(int i=0;i<n1;i++) {f[i][0]=i+1;String x=f[i][0]+" ";for(int j=0;j<x.length();j++) f[j][1]+=x.charAt(j)-'0';System.out.println(f[i][0]+" "+f[i][1]);}Arrays.sort(f,(o1,o2)->o1[1]==o2[1]?o1[0]-o2[0]:o1[1]-o2[1]);System.out.print(f[n2-1][0]);}}