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中元类用法实例
Oct 10 Python
python通过socket查询whois的方法
Jul 18 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
Jan 09 Python
用Python进行简单图像识别(验证码)
Jan 19 Python
Pytorch入门之mnist分类实例
Apr 14 Python
Python使用matplotlib绘制随机漫步图
Aug 27 Python
python实现二维插值的三维显示
Dec 17 Python
浅析python的Lambda表达式
Feb 27 Python
Python 日期区间处理 (本周本月上周上月...)
Aug 08 Python
关于pymysql模块的使用以及代码详解
Sep 01 Python
pandas和spark dataframe互相转换实例详解
Feb 18 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 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相当简单的分页类
2008/10/02 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
2013/07/01 PHP
PHP提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
jquery+easeing实现仿flash的载入动画
2015/03/10 Javascript
微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍
2016/10/13 Javascript
vue-cli webpack 开发环境跨域详解
2017/05/18 Javascript
浅谈node的事件机制
2017/10/09 Javascript
浅谈JS函数节流防抖
2017/10/18 Javascript
基于Bootstrap表单验证功能
2017/11/17 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
Vue+penlayers实现多边形绘制及展示
2020/12/24 Vue.js
[04:54]DOTA2 2017国际邀请赛:上届冠军WINGS采访短片
2017/08/09 DOTA
python求crc32值的方法
2014/10/05 Python
Python的randrange()方法使用教程
2015/05/15 Python
python实现的希尔排序算法实例
2015/07/01 Python
python数组过滤实现方法
2015/07/27 Python
python TCP Socket的粘包和分包的处理详解
2018/02/09 Python
Python Logging 日志记录入门学习
2018/06/02 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
Python K最近邻从原理到实现的方法
2019/08/15 Python
python基于plotly实现画饼状图代码实例
2019/12/16 Python
解决windows下python3使用multiprocessing.Pool出现的问题
2020/04/08 Python
Selenium及python实现滚动操作多种方法
2020/07/21 Python
Python基于locals返回作用域字典
2020/10/17 Python
CSS3只让背景图片旋转180度的实现示例
2021/03/09 HTML / CSS
Rossignol金鸡美国官网:始于1907年法国百年雪具品牌
2019/03/06 全球购物
Simons官方网站:加拿大时尚零售商
2020/02/20 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
JAVA和C++区别都有哪些
2015/03/30 面试题
写给女朋友的道歉信
2014/01/08 职场文书
高中课前三分钟演讲稿
2014/08/18 职场文书
项目合作协议书
2014/09/23 职场文书
2014感恩节演讲稿大全
2014/10/11 职场文书
2016年教师节贺卡寄语
2015/12/04 职场文书
详解使用内网穿透工具Ngrok代理本地服务
2022/03/31 Servers