

def is_equal(num):
num = str(num).zfill(4)
i = num[0]
if num.count(i) == 4:
return True
else:
return False
def get_max(num): # 指从左到右 为从大到小
num = str(num).zfill(4)
_ = sorted(list(map(int, list(num))), reverse=True)
_ = list(map(str, _))
return int("".join(_))
def get_min(num): # 指从左到右 为从小到大
num = str(num).zfill(4)
_ = sorted(list(map(int, list(num))))
_ = list(map(str, _))
return int("".join(_))
if __name__ == '__main__':
n = int(input())
if is_equal(n):
print(f"{n} - {n} = 0000")
else:
while get_max(n) - get_min(n) != 6174:
print(f"{str(get_max(n)).zfill(4)} - {str(get_min(n)).zfill(4)} = {str(get_max(n) - get_min(n)).zfill(4)}")
n = get_max(n) - get_min(n)
print(f"{str(get_max(n)).zfill(4)} - {str(get_min(n)).zfill(4)} = {str(get_max(n) - get_min(n)).zfill(4)}")
就说一点 懂吧
1,2,3,4,5,.:递增排列
9,8,7,6,5.:递减排列
1,2,3,3,4,5,8,8,.:非递减排列
9,8,7,7,6,5,5,2,1,.:非递增排列
这篇博客介绍了如何使用Python解决PAT乙级考试中的1019题——数字黑洞问题。博主探讨了数字的递增、递减以及非递增、非递减排列,并给出了具体的解决方案。

360

被折叠的 条评论
为什么被折叠?



