6174猜想:对任意各位数字不相同的四位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复操作,最终能得到6174,并且这个操作最多不会超过7次。
运用的知识点
- 内置函数
join()
,sorted()
,reversed()
lambda
表达式itertools
库中的combinations()
函数
#!/usr/bin/env python3
# coding:utf8
import itertools
s=list(itertools.combinations(range(10),4))
flag=False
for i in s:
snum=''.join(list(map(lambda x: str(x),i)))
count=0
flag=False
for j in range(7):
l=sorted(snum)
min=int(''.join(l))
max=int(''.join(reversed(l)))
if(max-min==6174):
flag=True
break
else:
snum=str(max-min)
if(flag==False):
break
if(flag):
print('6174猜想正确!')
else:
print('6174猜想错误!')