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通过websocket与js客户端通信示例分析
Jun 25 Python
python在不同层级目录import模块的方法
Jan 31 Python
Python将图片批量从png格式转换至WebP格式
Aug 22 Python
Python元组操作实例分析【创建、赋值、更新、删除等】
Jul 24 Python
Python实现两款计算器功能示例
Dec 19 Python
python 批量修改/替换数据的实例
Jul 25 Python
python分数表示方式和写法
Jun 26 Python
Django 中自定义 Admin 样式与功能的实现方法
Jul 04 Python
python实现逆滤波与维纳滤波示例
Feb 26 Python
python collections模块的使用
Oct 16 Python
selenium学习教程之定位以及切换frame(iframe)
Jan 04 Python
教你如何使用Python下载B站视频的详细教程
Apr 29 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,ajax实现分页
2008/03/27 PHP
一道关于php变量引用的面试题
2010/08/08 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十二)
2014/06/25 PHP
FastCGI 进程意外退出造成500错误
2015/07/26 PHP
一个简单安全的PHP验证码类、PHP验证码
2016/09/24 PHP
PHP实现微信提现(企业付款到零钱)
2019/08/01 PHP
优化网页之快速的呈现我们的网页
2007/06/29 Javascript
js获取location.href的参数实例代码
2013/08/02 Javascript
Javascript实现真实字符串剩余字数提示的实例代码
2013/10/22 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
javascript实现节点(div)名称编辑
2014/12/17 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
判断数组的最佳方法(推荐)
2016/10/11 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
js实现二级导航功能
2017/03/03 Javascript
jQuery实现的简单在线计算器功能
2017/05/11 jQuery
基于vue 动态加载图片src的解决方法
2018/02/05 Javascript
微信小程序中使用ECharts 异步加载数据的方法
2018/06/27 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
ES11新增的这9个新特性,你都掌握了吗
2020/10/15 Javascript
python放大图片和画方格实现算法
2018/03/30 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
解决Pycharm运行时找不到文件的问题
2018/10/29 Python
python pandas获取csv指定行 列的操作方法
2019/07/12 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
2019/11/19 Python
CSS3动画效果回调处理详解
2014/12/10 HTML / CSS
台湾前三大B2C购物网站:MOMO购物网
2017/04/27 全球购物
世界首屈一指的在线男士内衣权威:HisRoom
2017/08/05 全球购物
建筑工程专业学生的自我评价
2013/12/25 职场文书
领导班子奢靡之风查摆问题及整改措施
2014/09/27 职场文书
二婚主持词
2015/06/30 职场文书
导游词之清晏园
2019/11/22 职场文书
python 如何用terminal输入参数
2021/05/25 Python
Python中的matplotlib绘制百分比堆叠柱状图,并为每一个类别设置不同的填充图案
2022/04/20 Python
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers