欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

相关标签: python