首页 > 试题广场 >

大整数排序

[编程题]大整数排序
  • 热度指数:17599 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
对N个长度最长可达到1000的数进行排序。

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


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

输入

3
11111111111111111111111111111
2222222222222222222222222222222222
33333333

输出

33333333
11111111111111111111111111111
2222222222222222222222222222222222
Python 数字要多长都可以,哈哈哈。
while True:
    try:
        count = int(input())

        numbers = []
        while count > 0:
            number = int(input())
            numbers.append(number)
            count -= 1

        for i in sorted(numbers):
            print(i)
    except EOFError:
        break


发表于 2021-03-22 18:22:12 回复(0)
import sys
n=sys.stdin.readline().rstrip()
a=[]
for i in range(0,int(n)):
    a.append(sys.stdin.readline().rstrip())

for i in range(0,len(a)):
    for j in range(0,len(a)-i-1):
        if len(a[j])>len(a[j+1]):
            tmp=a[j]
            a[j]=a[j+1]
            a[j+1]=tmp
        if len(a[j])==len(a[j+1]):
            if int(a[j])>int(a[j+1]):
                tmp=a[j]
                a[j]=a[j+1]
                a[j+1]=tmp
for x in a:
    print(x)
发表于 2021-03-18 16:09:06 回复(0)
利用列表自带的排序函数,进行排序后输出即可
while True:
    try:
      N=eval(input())
      ls=[]
      for i in range(N):
          x=eval(input())
          ls.append(x)
      ls.sort()
      for i in ls:
          print(i)
    except:
        break
发表于 2020-07-30 21:13:54 回复(0)

python 3 lines solution:

while True:
    try:
        a, arr = int(input()), []
        for i in range(a): arr.append(int(input()))
        for i in sorted(arr): print(i)

    except:
        break
发表于 2017-10-01 16:55:46 回复(2)