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 相关文章推荐
Python格式化压缩后的JS文件的方法
Mar 05 Python
python 打印对象的所有属性值的方法
Sep 11 Python
DES加密解密算法之python实现版(图文并茂)
Dec 06 Python
在matplotlib的图中设置中文标签的方法
Dec 13 Python
Python数据可视化库seaborn的使用总结
Jan 15 Python
python numpy 按行归一化的实例
Jan 21 Python
使用pickle存储数据dump 和 load实例讲解
Dec 30 Python
PyCharm如何导入python项目的方法
Feb 06 Python
Django中modelform组件实例用法总结
Feb 10 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
python一些性能分析的技巧
Aug 30 Python
python数据分析之单因素分析线性拟合及地理编码
Jun 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
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
优化php效率,提高php性能的一些方法
2011/03/24 PHP
php实现二进制和文本相互转换的方法
2015/04/18 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
Javascript控制页面链接在新窗口打开具体方法
2013/08/16 Javascript
JavaScript随机生成信用卡卡号的方法
2015/04/07 Javascript
js实现温度计时间样式代码分享
2015/08/21 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
jQuery如何使用自动触发事件trigger
2015/11/29 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
JavaScript中匿名函数的递归调用
2017/01/22 Javascript
JavaScript方法_动力节点Java学院整理
2017/06/28 Javascript
Vue.js项目模板搭建图文教程
2017/09/20 Javascript
js回调函数仿360开机
2019/12/26 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
2020/04/13 Javascript
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
Python ORM框架SQLAlchemy学习笔记之数据查询实例
2014/06/10 Python
Python查找相似单词的方法
2015/03/05 Python
python3实现跳一跳点击跳跃
2018/01/08 Python
Python中Proxypool库的安装与配置
2018/10/19 Python
python selenium执行所有测试用例并生成报告的方法
2019/02/13 Python
Django 模型类(models.py)的定义详解
2019/07/19 Python
美国名牌太阳镜折扣网站:Eyedictive
2017/05/15 全球购物
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
美国珠宝精品店:Opulent Jewelers
2019/08/20 全球购物
财务经理的岗位职责
2013/12/17 职场文书
欢送退休感言
2014/02/08 职场文书
2014年教师节讲话稿5篇
2014/09/10 职场文书
党的群众路线教育实践活动组织生活会发言材料
2014/10/17 职场文书
小学公民道德宣传日活动总结
2015/03/23 职场文书
2015年市场营销工作总结
2015/07/23 职场文书
宝宝满月祝酒词
2015/08/10 职场文书
2015年成本会计工作总结
2015/10/14 职场文书