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 08 Python
python 排序算法总结及实例详解
Sep 28 Python
浅析Python3爬虫登录模拟
Feb 07 Python
Python爬虫实现抓取京东店铺信息及下载图片功能示例
Aug 07 Python
纯用NumPy实现神经网络的示例代码
Oct 24 Python
深入解析python中的实例方法、类方法和静态方法
Mar 11 Python
Python图像处理之图片文字识别功能(OCR)
Jul 30 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
Aug 07 Python
使用python实现离散时间傅里叶变换的方法
Sep 02 Python
Python实现串口通信(pyserial)过程解析
Sep 25 Python
python使用re模块爬取豆瓣Top250电影
Oct 20 Python
Python查找算法的实现 (线性、二分,分块、插值查找算法)
Apr 24 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
Optimizer与Debugger兼容性问题的解决方法
2008/12/01 PHP
几个有用的php字符串过滤,转换函数代码
2012/05/01 PHP
php中操作memcached缓存进行增删改查数据的实现代码
2014/08/15 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
Django中通过定时任务触发页面静态化的处理方式
2018/08/29 PHP
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
jQuery内置的AJAX功能和JSON的使用实例
2014/07/27 Javascript
JavaScript获取当前cpu使用率的方法
2015/12/15 Javascript
什么是JavaScript中的结果值?
2016/10/08 Javascript
javascript 中设置window.location.href跳转无效问题解决办法
2017/02/09 Javascript
layer子层给父层页面元素赋值,以达到向父层页面传值的效果实例
2017/09/22 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
vue2实现可复用的轮播图carousel组件详解
2017/11/27 Javascript
JS实现网页抢购功能(触发,终止脚本)
2017/11/27 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
2018/05/16 Javascript
node.js中express模块创建服务器和http模块客户端发请求
2019/03/06 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
[14:24]Optic Gaming vs PSG LGD BO3
2018/06/07 DOTA
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
python中argparse模块用法实例详解
2015/06/03 Python
Python中turtle作图示例
2017/11/15 Python
python计算日期之间的放假日期
2018/06/05 Python
详解python中init方法和随机数方法
2019/03/13 Python
Python Django 添加首页尾页上一页下一页代码实例
2019/08/21 Python
django-rest-swagger的优化使用方法
2019/08/29 Python
Python字符串hashlib加密模块使用案例
2020/03/10 Python
Vilebrequin欧洲官网:法国豪华泳装品牌(男士沙滩裤)
2018/04/14 全球购物
正宗的澳大利亚Ugg靴子零售商:UGG Express
2020/04/19 全球购物
职业生涯规划书怎么写?
2014/09/14 职场文书
群众路线学习笔记范文
2014/11/06 职场文书
2014年销售人员工作总结
2014/11/27 职场文书
2014年小学数学工作总结
2014/12/12 职场文书
导游带团欢迎词
2015/09/30 职场文书
php+laravel 扫码二维码签到功能
2021/05/15 PHP
IDEA使用SpringAssistant插件创建SpringCloud项目
2021/06/23 Java/Android
速龙x4-860k处理器相当于i几
2022/04/20 数码科技