问题描述:
给定任一个各位数字不完全相同的四位正整数,把四个数字按照非递增顺序排序,再按照非递减排序,然后用第一个数字减去第二个数字,将得到一个新数字。一直重复这样的操作,变回达到停在有‘数字黑洞的’6174,这个神奇的数字叫KapreKar常数
例如:
输入
6767
输出
7766-6677=1089
9810-0189=9621
9621-1269=6174
8532-2358=6174
以下是python实现
def to_array(x):
list = []
for i in range(4):
a=x%10
list.append(a)
x=int(x/10)
return list
def to_number(list):
num=0
for i in range(4):
num=num*10+list[i]
return num
x=6767
while True:
list=to_array(x)
list.sort()
min=to_number(list)
list.sort(reverse=True)
max=to_number(list)
x=max-min
print(max,'-',min,'=',x)
if (x==0 or x==6174):
break