【题目描述】1955年,卡普耶卡(D.R.Kaprekar)对4位数字进行了研究,发现一个规律:对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到6174这个数字,并且这个操作最多不会超过7次。请编写程序验证这个猜想。
【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。
【输入格式】在一行中输入一个任意各位数字不相同的4位数。
【输出格式】验证6174猜想,输出过程中计算得到的各数,数据间以空格为间隔。
【输入样例】2694
【输出样例】2694 7173 6354 3087 8352 6174
def kaprekar_constant(num): count = 0 while num != 6174: digits = [int(x) for x in str(num)] digits.sort() asc_num = int(''.join(map(str, digits))) desc_num = int(''.join(map(str, digits[::-1]))) num = desc_num - asc_num count += 1 return count 验证猜想 for i in range(1000, 10000): if len(set(str(i))) == 4: count = kaprekar_constant(i) if count <= 7: print("对于数字 {},猜想成立,操作次数为 {}".format(i, count))
标签:count,digits,20,int,2024,num,str,6174 From: https://www.cnblogs.com/drz1145141919810/p/18255466