【题目描述】1955年,卡普耶卡(D.R.Kaprekar)对4位数字进行了研究,发现一个规律:对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到6174这个数字,并且这个操作最多不会超过7次。请编写程序验证这个猜想。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】在一行中输入一个任意各位数字不相同的4位数。
【输出格式】验证6174猜想,输出过程中计算得到的各数,数据间以空格为间隔。
【输入样例】2694
【输出样例】2694 7173 6354 3087 8352 6174
def kaprekar_6174(number):
count = 0
while number != 6174 and count < 7:
digits = \[int(d) for d in str(number)\]
digits.sort()
ascending = int(''.join(map(str, digits)))
descending = int(''.join(map(str, digits\[::-1\])))
number = descending - ascending
count += 1
return count
\# 获取用户输入
number = int(input("请输入一个各位数字不相同的4位数:"))
\# 调用函数验证猜想
steps = kaprekar_6174(number)
\# 输出结果
if steps == 7:
print("验证通过,达到了最大步数7次。")
else:
print("验证未通过,达到的步数为:", steps)