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 相关文章推荐
PHP webshell检查工具 python实现代码
Sep 15 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
Jan 20 Python
python使用turtle库与random库绘制雪花
Jun 22 Python
对Python中创建进程的两种方式以及进程池详解
Jan 14 Python
使用python PIL库实现简单验证码的去噪方法步骤
May 10 Python
Python中的类与类型示例详解
Jul 10 Python
Python适配器模式代码实现解析
Aug 02 Python
Python Django view 两种return的实现方式
Mar 16 Python
查看jupyter notebook每个单元格运行时间实例
Apr 22 Python
实例代码讲解Python 线程池
Aug 24 Python
Scrapy中如何向Spider传入参数的方法实现
Sep 28 Python
python设置 matplotlib 正确显示中文的四种方式
May 10 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 中文字符入库或显示乱码问题的解决方法
2010/04/12 PHP
纯PHP生成的一个树叶图片画图例子
2014/04/16 PHP
thinkphp浏览历史功能实现方法
2014/10/29 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
2015/05/12 PHP
php实现求相对时间函数
2015/06/15 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
2016/06/13 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
AngularJS  $modal弹出框实例代码
2016/08/24 Javascript
解析AngularJS中get请求URL出现的跨域问题
2016/12/01 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
React事件处理的机制及原理
2018/12/03 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
vue实现滚动鼠标滚轮切换页面
2020/12/13 Vue.js
[52:41]OG vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/20 DOTA
爬山算法简介和Python实现实例
2014/04/26 Python
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
Python在Windows和在Linux下调用动态链接库的教程
2015/08/18 Python
python常用函数详解
2016/09/13 Python
python机器学习理论与实战(六)支持向量机
2018/01/19 Python
Python实现判断一行代码是否为注释的方法
2018/05/23 Python
python二维列表一维列表的互相转换实例
2018/07/02 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
python的faker库用法
2019/11/28 Python
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
医生爱岗敬业演讲稿
2014/08/26 职场文书
感恩祖国演讲稿
2014/09/09 职场文书
2015年组织委员工作总结
2015/04/23 职场文书
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android