什么是数字黑洞?
给定一个各位数字不完全相同的四位正整数,如果先把四个数字按递减排序,再按递增排序,然后两者相减(大的减去小的),将会得到一个新的数字,对新的数字重复此步骤,很快(不超过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条评论
点击登录参与评论