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 相关文章推荐
Python3基础之输入和输出实例分析
Aug 18 Python
python中使用mysql数据库详细介绍
Mar 27 Python
python使用装饰器和线程限制函数执行时间的方法
Apr 18 Python
Python基于smtplib实现异步发送邮件服务
May 28 Python
Python的多维空数组赋值方法
Apr 13 Python
Django csrf 两种方法设置form的实例
Feb 03 Python
Python多进程方式抓取基金网站内容的方法分析
Jun 03 Python
wxpython实现按钮切换界面的方法
Nov 19 Python
pytorch之inception_v3的实现案例
Jan 06 Python
Python如何在bool函数中取值
Sep 21 Python
Python实现单例模式的5种方法
Jun 15 Python
Python道路车道线检测的实现
Jun 27 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
动态新闻发布的实现及其技巧
2006/10/09 PHP
php实现的在线人员函数库
2008/04/09 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
2014/11/20 PHP
php+mysql实现无限级分类
2015/11/11 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
php获取ip及网址的简单方法(必看)
2017/04/01 PHP
Thinkphp5.0框架视图view的模板布局用法分析
2019/10/12 PHP
JS中for循序中延迟加载动态效果的具体实现
2013/08/18 Javascript
jquery实现table鼠标经过变色代码
2013/09/25 Javascript
按下回车键指向下一个位置的一个函数代码
2014/03/10 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
js控制当再次点击按钮时的间隔时间
2014/06/03 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
2015/09/07 Javascript
详解JavaScript中常用的函数类型
2015/11/18 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
Nodejs抓取html页面内容(推荐)
2016/08/11 NodeJs
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
Vue.js事件处理器与表单控件绑定详解
2017/03/20 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
在SAE上部署Python的Django框架的一些问题汇总
2015/05/30 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
详解Python3迁移接口变化采坑记
2019/10/11 Python
Python各种扩展名区别点整理
2020/02/27 Python
Python如何根据时间序列数据作图
2020/05/12 Python
python pyg2plot的原理知识点总结
2021/02/28 Python
HTML5 canvas 瀑布流文字效果的示例代码
2018/01/31 HTML / CSS
荷兰本土平价百货:HEMA
2017/10/23 全球购物
英国最大最好的无人机商店:Drones Direct
2019/07/12 全球购物
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
工地安全生产标语
2014/06/06 职场文书
推广普通话的宣传语
2015/07/13 职场文书
解决Vue+SpringBoot+Shiro跨域问题
2021/06/09 Vue.js
MySQL count(*)统计总数问题汇总
2022/09/23 MySQL