【九度OJ】题目1190:大整数排序 解题报告

    xiaoxiao2021-03-25  120

    【九度OJ】题目1190:大整数排序 解题报告

    标签(空格分隔): 九度OJ


    原题地址:http://ac.jobdu.com/problem.php?pid=1190

    题目描述:

    对N个长度最长可达到1000的数进行排序。

    输入:

    输入第一行为一个整数N,(1<=N<=100)。 接下来的N行每行有一个数,数的长度范围为1<=len<=1000。 每个数都是一个正数,并且保证不包含前缀零。

    输出:

    可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。

    样例输入:

    3 11111111111111111111111111111 2222222222222222222222222222222222 33333333

    样例输出:

    33333333 11111111111111111111111111111 2222222222222222222222222222222222

    Ways

    大整数排序,直接使用Java BigInteger类,但是要手写排序,我就随手写了个冒泡,直接AC了。

    import java.util.*; import java.math.*; public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int n = scanner.nextInt(); BigInteger[] integers = new BigInteger[n]; for (int i = 0; i < n; i++) { integers[i] = scanner.nextBigInteger(); } for (int i = 0; i < n; i++) {//冒泡 for (int j = i; j < n; j++) { if (integers[i].compareTo(integers[j]) > 0) { BigInteger temp = new BigInteger(integers[i].toString()); integers[i] = integers[j]; integers[j] = temp; } } } for (int i = 0; i < n; i++) { System.out.println(integers[i].toString()); } } } }

    Date

    2017 年 3 月 8 日

    转载请注明原文地址: https://ju.6miu.com/read-6617.html

    最新回复(0)