1955年,卡普耶卡(D.R.Kaprekar)對4位數字進行了研究,發現一個規律:
對任意各位數字不相同的4位數,使用各位數字能組成的最大數減去能組成的最小數,對得到的差重復這個操作,最終會得到6174這個數字,並且這個操作最多不會超過7次
以下為python代碼驗證
a = input()
a = int(a)
i = 0
l = []
cha = 0
b = a%1000 #求出百十個位
max4 = (a - b)/1000 #求出千位
d = b%100 #求出十個位
max3 = (b - d)/100 #求出百位
max1 = d%10 #求出個位
max2 = (d - max1)/10 #求出十位
l.append(max4)
l.append(max3)
l.append(max2)
l.append(max1)
l.sort()
max1 = int(l[0]) #最小值
max2 = int(l[1])
max3 = int(l[2])
max4 = int(l[3]) #最大值
while cha != 6174 :
i = i + 1
summax = max4 * 1000 + max3 * 100 + max2 * 10 + max1
summin = max1 * 1000 + max2 * 100 + max3 * 10 + max4
cha = summax - summin
baishige = cha%1000 #求出百十個位
max4 = (cha - baishige)/1000 #求出千位
shige = baishige%100 #求出十個位
max3 = (baishige - shige)/100 #求出百位
max1 = shige%10 #求出個位
max2 = (shige - max1)/10 #求出十位
l = [] #這個地方要把列表清零,當時沒注意,在這調試了很長時間
l.append(max4)
l.append(max3)
l.append(max2)
l.append(max1)
l.sort()
max1 = int(l[0]) #最小值
max2 = int(l[1])
max3 = int(l[2])
max4 = int(l[3]) #最大值
print(cha)
print(i)
截圖