python - 如何重新排列三位整数的数字(例如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))
解决方案
将数字转换为字符串,以便您可以将其转换为包含每个数字的列表,按降序对列表进行排序,连接元素并转换回 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)
但是我相信这样做会更乏味。
推荐阅读
- firebase - Flutter + Firebase:如何遍历子集合?
- r - 使用 plot2docx 从 R 到 Word
- python - 使用 Python 接受用户输入以从 API 返回 JSON 条目
- json - 无法反序列化当前 JSON 对象,因为该类型需要 JSON 数组
- python - 在 Python 中将混合数转换为小数
- reactjs - 根据状态在 React 中创建受保护的路由
- docker - 如何修复:docker-compose.yml 无效、不支持配置和无效类型错误
- node.js - redirect_uri_mismatch: http://localhost:4500/AUTH/auth/google/callback,不匹配
- swift - 条件绑定的初始化程序必须具有 Optional 类型,而不是 Swift 5 中的 CustomClass
- java - 如何使用 LocalDateTime 查询今天的所有实体?