首页 > 解决方案 > 如何重新排列三位整数的数字(例如978到这个987)并获得最高整数?

问题描述

如何重新排列三位整数的数字,以便返回这三位整数中的最高整数?

我试过这个:

a = int(input('Enter value for a => '))

b = a % 10 
a = a // 10
c = a % 10
a = a // 10
d = a % 10

if (b > c and b > d and c > d):
    print(str(b) + str(c) + str(d))
elif (c > b and c > d and b > d):
    print(str(c) + str(b) + str(d))
else:
    print(str(d) + str(c) + str(b))

标签: python

解决方案


将数字转换为字符串,以便您可以将其转换为包含每个数字的列表,按降序对列表进行排序,连接元素并转换回 int。

def highest(n):
    return int(''.join(sorted(str(n), reverse=True)))

样本

>>> highest(192)
921
>>> highest(719)
971

编辑:如果您想通过比较每个数字的值来做到这一点,则无需将其转换为 int。只需收集输入,然后比较每个值。

a, b, c = input('Enter value for a => ')

if a > b > c:
    print(a + b + c)
elif a > c > b:
    print(a + c + b)
elif b > a > c:
    print(b + a + c)
elif b > c > a:
    print(b + c + a)
elif c > a > b:
    print(c + a + b)
else:
    print(c + b + a)

但是我相信这样做会更乏味。


推荐阅读