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

【九度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 日

posted @ 2017-03-08 21:26  负雪明烛  阅读(19)  评论(0编辑  收藏  举报