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 相关文章推荐
使用IPython下的Net-SNMP来管理类UNIX系统的教程
Apr 15 Python
OpenCV2.3.1+Python2.7.3+Numpy等的配置解析
Jan 05 Python
python pandas cumsum求累计次数的用法
Jul 29 Python
python实现五子棋游戏(pygame版)
Jan 19 Python
tensorflow实现二维平面模拟三维数据教程
Feb 11 Python
Python3 Click模块的使用方法详解
Feb 12 Python
python3+openCV 获取图片中文本区域的最小外接矩形实例
Jun 02 Python
Python 使用 PyQt5 开发的关机小工具分享
Jul 16 Python
Python insert() / append() 用法 Leetcode实战演示
Mar 31 Python
python实现股票历史数据可视化分析案例
Jun 10 Python
python ConfigParser库的使用及遇到的坑
Feb 12 Python
Python循环之while无限迭代
Apr 30 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
php无限遍历文件夹示例分享
2014/03/04 PHP
typecho插件编写教程(四):插件挂载
2015/05/28 PHP
php实现curl模拟ftp上传的方法
2015/07/29 PHP
在WordPress中使用wp-cron插件来设置定时任务
2015/12/10 PHP
php.ini中date.timezone设置详解
2016/11/20 PHP
javascript 数组的方法集合
2008/06/05 Javascript
jQuery live
2009/05/15 Javascript
ExtJs3.0中Store添加 baseParams 的Bug
2010/03/10 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
2013/11/15 Javascript
jQuery过滤特殊字符及JS字符串转为数字
2016/05/26 Javascript
AngularJS基础 ng-model-options 指令简单示例
2016/08/02 Javascript
js中常用的Tab切换效果(推荐)
2016/08/30 Javascript
详解js中Json的语法与格式
2016/11/22 Javascript
js精确的加减乘除实例
2017/11/14 Javascript
Vue代码分割懒加载的实现方法
2017/11/23 Javascript
node(koa2) web应用模块介绍详解
2019/03/29 Javascript
vue+koa2实现session、token登陆状态验证的示例
2019/08/30 Javascript
实现vuex与组件data之间的数据同步更新方式
2019/11/12 Javascript
使用PreloadJS加载图片资源的基础方法详解
2020/02/03 Javascript
JS实现横向跑马灯效果代码
2020/04/20 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
Python 获取中文字拼音首个字母的方法
2018/11/28 Python
python实现二维插值的三维显示
2018/12/17 Python
python实现基于信息增益的决策树归纳
2018/12/18 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
python 实现读取csv数据,分类求和 再写进 csv
2020/05/18 Python
python爬虫使用scrapy注意事项
2020/11/23 Python
python代码实现猜拳小游戏
2020/11/30 Python
美国户外服装和装备购物网站:Outland USA
2020/03/22 全球购物
毕业生个人求职信范文分享
2014/01/05 职场文书
精彩自我鉴定
2014/01/16 职场文书
安全生产汇报材料
2014/02/17 职场文书
员工2014年度工作总结
2014/12/09 职场文书
银行安全保卫工作总结
2015/08/10 职场文书
2016年综治宣传月活动宣传标语口号
2016/03/16 职场文书