python--如何用枚举法验证6174猜想
程序员文章站
2022-03-03 19:19:01
6174猜想:对任意各位数字不相同的四位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复操作,最终能得到6174,并且这个操作最多不会超过7次。#!/usr/bin/env python3# coding:utf8import itertools s=list(itertools.combinations(range(10),4))flag=Falsefor i in s: snum=''.join(list(map(lambda x: str(x),i))) ....
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猜想错误!')
本文地址:https://blog.csdn.net/codeblank/article/details/109063298