博雅笔试记录:输入最小的数

来源:互联网 发布:mac怎么复制粘贴 编辑:程序博客网 时间:2024/05/17 09:43

问题大概描述:从键盘输入一组正整数数组,将它们拼接起来,输出拼接后值最小的那个数:
输入参数:
第一个参数代表数组长度
输入数组数组,用空格分开
输出
一个整数
例子
输入
3
4 43 432
输出
432434

需要掌握的重点:从键盘取得多个数值(死在这块,最后没通过,想哭!!!)
第二:逻辑排序

代码参见:

public class Test {    public static void main(String[] args) {        Scanner scanner  = new Scanner(System.in);        int length;        System.out.println("please input the length of arrays:");        length=scanner.nextInt();        int[] array = new int[length];        int index = 0;        System.out.println("please input the number in the array(please separate with space):");        //获得多行输入的方式,切记!!!        while (scanner.hasNext()) {            if(scanner.hasNextInt())                 array[index++]=scanner.nextInt();            if(index>=array.length) break;        }        //获取数据结束        System.out.println((getResultNum(array)));    }    /*    *逻辑方法    */    public static int getResultNum(int []arr)    {        int result;        List<String>strs=new ArrayList<String>();        for(int num:arr)        {            strs.add(String.valueOf(num));        }        Collections.sort(strs,new Comparator<String>()                {            @Override            public int compare(String o1, String o2)            {                String s1=o1+o2;                String s2=o2+o1;                return s1.compareTo(s2);            }                });        StringBuilder sbuilder=new StringBuilder();        for(String str:strs)        {            sbuilder.append(str);        }        result=Integer.parseInt(sbuilder.toString());        return result;    }}
阅读全文
0 0