设有n个正整数,将他们连接成一排,组成一个最大的多位整数。
如:n=3时,3个整数13,312,343,连成的最大整数为34331213。
如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。
实现思路:
将输入的数据分割放入列表
然后对列表进行排序之后就生成了最大(小)数。
重点在于字符串比较排序。(字符串排序默认就是按照ASCII码进行排序)
#!/usr/bin/env/python
# -*-coding:utf-8 -*-
# 设有n个正整数,将他们连接成一排,组成一个最大的多位整数。
# 如:n=3时,3个整数13,312,343,连成的最大整数为34331213。
# 如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。
def judge(l):
for i in l:
try:
if i.isdigit() == False:
raise NameError;
except NameError:
print("数字类型错误,请输入纯数字!");
return 0;
else:
l.sort(reverse=True)
print(''.join(l)); #拼接字符串
return 1;
if __name__ == '__main__':
while True:
# n = input('请输入正数个数')
l = [];
str = input('请依次输入数值')
l = str.split(' ');
if(judge(l)):
break;