Python练习题(4)_吸血鬼数字实现
2015-05-12 23:35
351 查看
1.吸血鬼解释:1994年柯利弗德·皮寇弗在Usenet社群sci.math的文章中首度提出吸血鬼数。后来皮寇弗将吸血鬼数写入他的书Keys to Infinity的第30章。
吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。
2.举例:
1260=21*60
1827=21*87
2187=27*81
3.Python实现:
4.测试结果:
吸血鬼数字是指位数为偶数的数字,可以由一对数字相乘而得到,而这对数字各包含乘积的一半位数的数字,其中从最初的数字中选取的数字可以任意排序。
2.举例:
1260=21*60
1827=21*87
2187=27*81
3.Python实现:
import itertools#引入类库 end=[]#用来放置得到的吸血鬼数,然后用来去重。 n=1000#开始位置 while n<=9999:#n会从1000-9999 str_n=str(n)#因为这个类库需要的字符串类型 for i in itertools.permutations(str_n,4):#4代表随机非重复排列到4个位置 x=(''.join(i))#得到全排列的一个 ''' if n==6880:#用来输出指定的某个n的所有全排列 print (x) ''' x1=int(x[:2])#分割数字 x2=int(x[2:]) fix=x1*x2#得到乘积 if fix==n and x1>=x2:#用来判断是否和上面的n相同,而且排除掉只是前后位置不同的情况 str1=(str_n+'='+str(x1)+'*'+str(x2))#拼装成字符串(必须用加号,元素都得是字符串) end.append(str1) n+=1#这个数的全排列都测试以后再加一 end = list(set(end))#用来去重 for i in range(len(end)): print(end[i])
4.测试结果:
相关文章推荐
- 吸血鬼数字的实现(thinking in java练习题)
- 在字符串中找出连续最长的数字串(python实现)
- 任意大数字加法的python实现
- Python实现识别手写数字 简易图片存储管理系统
- Python实现找出数组中第2大数字的方法示例
- python 练习题 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
- python tensorflow基于cnn实现手写数字识别
- 《python核心编程第二版》练习题——实现1000以内的所有数字的英文表达
- 阿拉伯数字金额转中文大写 (python实现)
- 《神经网络与深度学习》第一章 使用神经网络来识别手写数字(三)- 用Python代码实现
- Python代码实现简单的MNIST手写数字识别(适合初学者看)
- kNN算法python实现和简单数字识别
- python2 实现的LED大数字效果
- python实现写数字文件名的递增保存文件方法
- Python实现深度学习之-神经网络识别手写数字(更新中,更新日期:2017-07-12)
- ip、数字互转-python实现
- Python实现识别手写数字 Python图片读入与处理
- DSA数字签名原理及python实现