python求解水仙花数的方法


Posted in Python onMay 11, 2015

本文实例讲述了python求解水仙花数的方法。分享给大家供大家参考。具体如下:

一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数。

#!/usr/bin/python
def get_flower(n, ofile):
 D_pow=[pow(i,n) for i in range(0,10)]
 V_min=1*pow(10,n-1)
 V_max=sum((9*pow(10,x) for x in range(0,n)))
 T_count=0
 print D_pow, V_max, V_min
 nums=[1]+[0]*(n-1)
 print 'Start:', nums
 idx=n-1
 tmp_l=[0]*10
 while True:
  nums[idx]+=1
  if nums[idx]<10:
   j=idx+1
   while j<n:
    nums[j]=nums[idx] # reset 
    j+=1
   v=sum((D_pow[x] for x in nums))
   if v<=V_max and v>=V_min:
    T_count+=1
    #test if is flower
    #print 'do test:', ''.join(map(str,nums))
    k=0
    while k<10:
     tmp_l[k]=0
     k+=1
    N=0
    for k in nums:
     tmp_l[k]+=1
     N+=1
    while N>0:
     p=v%10
     if tmp_l[p]>0:
      tmp_l[p]-=1
      N-=1
     else:
      break
     v/=10
    if N==0:
     print >>ofile, 'hit', sum((D_pow[x] for x in nums))
   idx=n-1
  elif idx==0:
   print 'done'
   break
  else:
   idx-=1
 print 't_count', T_count
if __name__ == '__main__':
 with file('./f.txt', 'wb') as o:
  get_flower(21, o)
  #get_flower(3, o)

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
flask中使用SQLAlchemy进行辅助开发的代码
Feb 10 Python
Python简单调用MySQL存储过程并获得返回值的方法
Jul 20 Python
Python subprocess模块功能与常见用法实例详解
Jun 28 Python
python 输出所有大小写字母的方法
Jan 02 Python
20行python代码的入门级小游戏的详解
May 05 Python
Opencv实现抠图背景图替换功能
May 21 Python
使用PYTHON解析Wireshark的PCAP文件方法
Jul 23 Python
python操作excel让工作自动化
Aug 09 Python
python实现的分析并统计nginx日志数据功能示例
Dec 21 Python
Python json读写方式和字典相互转化
Apr 18 Python
关于Python不换行输出和不换行输出end=““不显示的问题(亲测已解决)
Oct 27 Python
pycharm配置QtDesigner的超详细方法
Jan 25 Python
pymongo为mongodb数据库添加索引的方法
May 11 #Python
python判断windows系统是32位还是64位的方法
May 11 #Python
Python中使用装饰器时需要注意的一些问题
May 11 #Python
python在linux系统下获取系统内存使用情况的方法
May 11 #Python
Python实现登录人人网并抓取新鲜事的方法
May 11 #Python
python实现中文输出的两种方法
May 09 #Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
May 09 #Python
You might like
叶罗丽:为什么大家对颜冰这对CP非常关心,却对金茉两人十分冷漠
2020/03/17 国漫
php 的反射详解及示例代码
2016/08/25 PHP
初学JavaScript第二章
2008/09/30 Javascript
javascript 一些用法小结
2009/09/11 Javascript
JS动态创建Table,Tr,Td并赋值的具体实现
2013/07/05 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
瀑布流布局代码一例
2014/04/11 Javascript
利用jQuery实现可以编辑的表格
2014/05/26 Javascript
使用JSON.parse将json字符串转换成json对象的时候会出错
2014/09/04 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
微信小程序 location API实例详解
2016/10/02 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
vue中倒计时组件的实例代码
2018/07/06 Javascript
Vue实现根据hash高亮选项卡
2019/05/27 Javascript
vue实现下拉加载其实没那么复杂
2019/08/13 Javascript
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
JS call()及apply()方法使用实例汇总
2020/07/11 Javascript
python爬虫教程之爬取百度贴吧并下载的示例
2014/03/07 Python
python实现读取命令行参数的方法
2015/05/22 Python
Python找出最小的K个数实例代码
2018/01/04 Python
Python WSGI的深入理解
2018/08/01 Python
Python爬虫实现验证码登录代码实例
2019/05/10 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
Python装饰器实现方法及应用场景详解
2020/03/26 Python
关于环保的标语
2014/06/13 职场文书
2015年度信用社工作总结
2015/05/04 职场文书
大学毕业论文致谢词
2015/05/14 职场文书
2016秋季小学开学寄语
2015/12/03 职场文书
小学大队委竞选口号
2015/12/25 职场文书
python for循环赋值问题
2021/06/03 Python
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
Oracle 死锁的检测查询及处理
2021/09/25 Oracle