首先要知道6174猜想是什么:
对任意各位数字不相同的4位数,使用各位数字组成的最大数减去其组成的最小数,对得到的差重复这个操作,最终会得到6174这个数字,并且这个操作最多不会超过7次。
先放代码:
num=list(input("请任意输入一个四位数(各不相同):"))
count=1
def Round(num,count):
Max=int(''.join(sorted(num,reverse=True)))
Min=int(''.join(sorted(num)))
diff=Max-Min
print("Round[{0}]:max_one {1} and min_one {2},the diff is {3}".format(count,Max,Min,diff))
if diff != 6174:
num=list(str(diff))
count+=1
Round(num,count)
Round(num,count)
运行结果:
这里需要注意的是:
1.sort排序函数必须用于列表中元素排序,所以使用该函数必须保证该参数是列表类型;
2.列表由数字组成不能直接转换为一串数字,可以先使用join函数将列表元素串联成一个字符串,再使用int()转换,因此要将Max及Min转换成int型,进行减法运算,最后得到的差值还要重新转换为列表型,同样数字不能直接转为列表型,先通过str()转换为字符串;