什么是数字黑洞?
给定一个各位数字不完全相同的四位正整数,如果先把四个数字按递减排序,再按递增排序,然后两者相减(大的减去小的),将会得到一个新的数字,对新的数字重复此步骤,很快(不超过7次)就会停在数字黑洞“6147”。
我们可以编程来验证数据黑洞,如果输入的是3位数,我们补一个零。
#数字黑洞 wanmait.com
num0 = input("请输入一个四位数(各个位数字不同):")
if len(str(num0))<4:
#补零
num0 = ('0'+str(num0) )[-4:]
while True:
num0 = list(str(num0))
#对这个四位数进行排序
# 获得由大到小的排序结果
num0.sort()
num1 = ''.join(num0)
#逆序获得由小到大的排序结果
num0.reverse()
num2 = ''.join(num0)
#计算差
num0 = int(num2)-int(num1)
if len(str(num0))<4:
#补零
num0 = ('0'+str(num0))[-4:]
print(f"{num2} - {num1} = {num0}")
if int(num0) == 6174 or int(num0) == 0:
break我们运行测试:
请输入一个四位数(各个位数字不同):5643 6543 - 3456 = 3087 8730 - 0378 = 8352 8532 - 2358 = 6174
再测试一次:
请输入一个四位数(各个位数字不同):1234 4321 - 1234 = 3087 8730 - 0378 = 8352 8532 - 2358 = 6174
再来一次:
请输入一个四位数(各个位数字不同):9876 9876 - 6789 = 3087 8730 - 0378 = 8352 8532 - 2358 = 6174
怎么样?
你能不能想办法编程测试5位数是否也有数字黑洞?是哪个数字?

0条评论
点击登录参与评论