解题:最大组合问题

设有n个正整数(n<=20),将它们联成一排,组成一个最大的多位数。

 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213
 又如:n=4时,4个整数7,13,4,246联接成的最大整数为7424613
程序输入:n
 程序输出:n个数联接成的多位数。

解题:按首个位置的大小来排序,再按第二个位置的数字大小排序,联想到了可以借助字符串。

 

#coding='utf-8'

##设有n个正整数(n<=20),将它们联成一排,组成一个最大的多位数。
## 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213
## 又如:n=4时,4个整数7,13,4,246联接成的最大整数为7424613
##程序输入:n
## 程序输出:n个数联接成的多位数。

#解题:按首个位置的大小来排序,可以借助字符串。

def zuhe(b):
    b=[str(x) for x in b]
    b=sorted(b,reverse=True)
    return int(''.join(b))

x=zuhe([11,23,143,69,772])
print(x)

  

posted on 2017-12-31 23:49  guangzhao17  阅读(286)  评论(0编辑  收藏  举报