python-验证6174猜想

【题目描述】1955年,卡普耶卡(D.R.Kaprekar)对4位数字进行了研究,发现一个规律:对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到6174这个数字,并且这个操作最多不会超过7次。请编写程序验证这个猜想。

【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。

【输入格式】在一行中输入一个任意各位数字不相同的4位数。

【输出格式】验证6174猜想,输出过程中计算得到的各数,数据间以空格为间隔。

【输入样例】2694

【输出样例】2694 7173 6354 3087 8352 6174

 

代码:

num = input()

data = [num]


def get6147(num):
    max = int("".join(sorted(list(num), reverse=True)))
    min = int("".join(sorted(list(num))))
    difference = max - min
    data.append(str(difference))
    if difference != 6174:
        get6147(str(difference))


get6147(num)
print(" ".join(data))

 

 

posted @ 2022-03-18 22:08  睡觉不困  阅读(850)  评论(0)    收藏  举报