Java_22 蓝桥杯真题——拼数

该篇文章详细讲解了如何使用Java的Scanner和自定义排序方法计算一系列正整数的最大连接数,涉及到了输入处理和数值比较技巧。
摘要由CSDN通过智能技术生成

问题描述


给定几 个正整数 a1,a2....,an,你可以将它们任意排序,
现要将这 几 个数字连接成一排,即令相邻数字收尾相接,组成一个数。
问,这个数最大可以是多少。
输入格式
第一行输入个正整数 n(l < n< 20)。
第二行输入几 个正整数 a1,a2,...,an(1 ≤ ai ≤ 105)
输出格式
输出一个整数,表示答案。
样例输入
13 312 343
样例输出
34331213
运行限制
。最大运行时间:1S
。最大运行内存:256M

解答

import java.util.Scanner;
import java.util.Arrays;
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改

public class Main {
    public static void main(String[] args) {
      Scanner scan = new Scanner(System.in);
      int n =scan.nextInt();//转换为整型
      scan.nextLine();//接受回车键,将被next()去掉的Enter等结束符过滤掉
      String[] a=new String[n];
      for(int i=0;i<n;i++){
        a[i]=scan.next();//Scanner输入字符串
      }

      //排序,🤔
      Arrays.sort(a,(x,y)->{
        return (x+y).compareTo(y+x);
      });

      for(int i=n-1;i>=0;i--){
        System.out.print(a[i]);
      }

        scan.close();
    }
}

学习

java中Scanner类nextLine()和next()的使用方法和注意事项

Java中Arrays.sort()的三种常用用法(自定义排序规则)

Java compareTo() 方法

Java String 类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值