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最基本的输入输出详解
Apr 25 Python
在Python中操作字典之setdefault()方法的使用
May 21 Python
在Django的模板中使用认证数据的方法
Jul 23 Python
Python基于csv模块实现读取与写入csv数据的方法
Jan 18 Python
pytorch cnn 识别手写的字实现自建图片数据
May 20 Python
Python中的Cookie模块如何使用
Jun 04 Python
keras的siamese(孪生网络)实现案例
Jun 12 Python
python和JavaScript哪个容易上手
Jun 23 Python
基于Python的自媒体小助手---登录页面的实现代码
Jun 29 Python
python如何求圆的面积
Jul 01 Python
Python Pillow(PIL)库的用法详解
Sep 19 Python
python 使用tkinter+you-get实现视频下载器
Nov 17 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
VML绘图板②脚本--VMLgraph.js、XMLtool.js
2006/10/09 PHP
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
php中二维数组排序问题方法详解
2015/08/28 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
基于Laravel(5.4版本)的基本增删改查操作方法
2019/10/11 PHP
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
js判断undefined变量类型使用typeof
2013/06/03 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
JavaScript给input的value赋值引发的关于基本类型值和引用类型值问题
2015/12/07 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
JavaScript时间操作之年月日星期级联操作
2016/01/15 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
2016/05/09 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
微信小程序之数据缓存的实例详解
2017/09/29 Javascript
JavaScript异步操作的几种常见处理方法实例总结
2020/05/11 Javascript
Nodejs在局域网配置https访问的实现方法
2020/10/17 NodeJs
python图像处理之镜像实现方法
2015/05/30 Python
使用FastCGI部署Python的Django应用的教程
2015/07/22 Python
Python正规则表达式学习指南
2016/08/02 Python
关于Django显示时间你应该知道的一些问题
2017/12/25 Python
python如何去除字符串中不想要的字符
2020/07/05 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
利用python修改json文件的value方法
2018/12/31 Python
用Python解决x的n次方问题
2019/02/08 Python
孝老爱亲模范事迹
2014/01/24 职场文书
声乐专业大学生职业生涯规划书:理想的未来需要自己去打造
2014/09/20 职场文书
领导班子四风查摆对照检查材料思想汇报
2014/10/05 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
2014社区健康教育工作总结
2014/12/16 职场文书
整改通知书格式
2015/04/22 职场文书
新学期开学标语2015
2015/07/16 职场文书
python删除csv文件的行列
2021/04/06 Python
Python万能模板案例之matplotlib绘制直方图的基本配置
2022/04/13 Python