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算法之栈(stack)的实现
Aug 18 Python
python在windows和linux下获得本机本地ip地址方法小结
Mar 20 Python
Python将DataFrame的某一列作为index的方法
Apr 08 Python
python用BeautifulSoup库简单爬虫实例分析
Jul 30 Python
Python流程控制 if else实现解析
Sep 02 Python
给我一面国旗 python帮你实现
Sep 30 Python
python 实现方阵的对角线遍历示例
Nov 29 Python
python如何实现不用装饰器实现登陆器小程序
Dec 14 Python
Python使用PyQt5/PySide2编写一个极简的音乐播放器功能
Feb 07 Python
Scrapy中如何向Spider传入参数的方法实现
Sep 28 Python
python第三方网页解析器 lxml 扩展库与 xpath 的使用方法
Apr 06 Python
用Python提取PDF表格的方法
Apr 11 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和ACCESS写聊天室(五)
2006/10/09 PHP
event.srcElement+表格应用
2006/08/29 Javascript
javascript计算星座属相(十二生肖属相)示例代码
2014/01/09 Javascript
js取float型小数点后两位数的方法
2014/01/18 Javascript
javascript结合ajax读取txt文件内容
2014/12/05 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
jQuery表格插件datatables用法汇总
2016/03/29 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
使用jQuery和ajax代替iframe的方法(详解)
2017/04/12 jQuery
解决Vue在封装了Axios后手动刷新页面拦截器无效的问题
2018/11/08 Javascript
微信小程序自定义键盘 内部虚拟支付
2018/12/20 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
layui加载表格,绑定新增,编辑删除,查看按钮事件的例子
2019/09/06 Javascript
vue中get请求如何传递数组参数的方法示例
2019/11/08 Javascript
基于vue.js仿淘宝收货地址并设置默认地址的案例分析
2020/08/20 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
Python random模块(获取随机数)常用方法和使用例子
2014/05/13 Python
使用Python中的线程进行网络编程的入门教程
2015/04/15 Python
Python实现自动发送邮件功能
2021/03/02 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
Django 实现xadmin后台菜单改为中文
2019/11/15 Python
Python和Sublime整合过程图示
2019/12/25 Python
Tensorflow实现部分参数梯度更新操作
2020/01/23 Python
一文带你掌握Pyecharts地理数据可视化的方法
2021/02/06 Python
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
怎样让char类型的东西转换成int类型
2013/12/09 面试题
数控技术专科生自我评价
2014/01/08 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
工作失误检讨书范文
2015/01/26 职场文书
数学教师个人工作总结
2015/02/06 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
php中pcntl_fork详解
2021/04/01 PHP
vue实现锚点定位功能
2021/06/29 Vue.js
利用python做数据拟合详情
2021/11/17 Python
详解Python+OpenCV绘制灰度直方图
2022/03/22 Python