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 相关文章推荐
Django与遗留的数据库整合的方法指南
Jul 24 Python
学习python之编写简单简单连接数据库并执行查询操作
Feb 27 Python
Python简单网络编程示例【客户端与服务端】
May 26 Python
python构建自定义回调函数详解
Jun 20 Python
浅谈python迭代器
Nov 08 Python
python表格存取的方法
Mar 07 Python
Python对excel文档的操作方法详解
Dec 10 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
Aug 24 Python
python getopt模块使用实例解析
Dec 18 Python
Django后端分离 使用element-ui文件上传方式
Jul 12 Python
python3通过subprocess模块调用脚本并和脚本交互的操作
Dec 05 Python
python爬虫之爬取笔趣阁小说
Apr 22 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防止图片盗用(盗链)的方法小结
2016/11/11 PHP
设定php简写功能的方法
2019/11/28 PHP
Js获取事件对象代码
2010/08/05 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
javascript 利用Image对象实现的埋点(某处的点击数)统计
2012/12/28 Javascript
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
jquery ajax,ashx,json的用法总结
2014/02/12 Javascript
javascript对JSON数据排序的3个例子
2014/04/12 Javascript
jQuery使用fadeout实现元素渐隐效果的方法
2015/03/27 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
Angular2 (RC5) 路由与导航详解
2016/09/21 Javascript
集合Bootstrap自定义confirm提示效果
2017/09/19 Javascript
vue实现添加与删除图书功能
2018/10/07 Javascript
layui数据表格实现重载数据表格功能(搜索功能)
2019/07/27 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
2020/10/12 Javascript
python自动化测试之从命令行运行测试用例with verbosity
2014/09/28 Python
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
python中星号变量的几种特殊用法
2016/09/07 Python
Python实现字符串与数组相互转换功能示例
2017/09/22 Python
Python字符编码与函数的基本使用方法
2017/09/30 Python
python实现Adapter模式实例代码
2018/02/09 Python
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
WxPython建立批量录入框窗口
2019/02/27 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
使用sklearn的cross_val_score进行交叉验证实例
2020/02/28 Python
python和js交互调用的方法
2020/06/23 Python
美国彩妆品牌:Coastal Scents
2017/04/01 全球购物
美国折扣网站:jClub
2017/08/07 全球购物
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
2012/12/05 面试题
广州一家公司的.NET面试题
2016/06/11 面试题
高中生学习生活的自我评价
2013/10/09 职场文书
临床医学应届生求职信
2013/11/06 职场文书
物流仓管员岗位职责
2013/12/04 职场文书
计算机实训报告范文
2014/11/05 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书
2016年国庆节假期旅游工作总结
2016/04/01 职场文书