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实现从字典中删除元素的方法
May 04 Python
python二分查找算法的递归实现方法
May 12 Python
Python基于scapy实现修改IP发送请求的方法示例
Jul 08 Python
Anaconda2下实现Python2.7和Python3.5的共存方法
Jun 11 Python
PyQt5 在label显示的图片中绘制矩形的方法
Jun 17 Python
获取django框架orm query执行的sql语句实现方法分析
Jun 20 Python
python多线程与多进程及其区别详解
Aug 08 Python
详解python中的生成器、迭代器、闭包、装饰器
Aug 22 Python
python实现同一局域网下传输图片
Mar 20 Python
Python 使用生成器代替线程的方法
Aug 04 Python
Python监听剪切板实现方法代码实例
Nov 11 Python
Python list列表删除元素的4种方法
Nov 01 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
无线电广播的开始
2002/01/30 无线电
php实现文本数据导入SQL SERVER
2015/05/17 PHP
利用php生成验证码
2017/02/23 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
Laravel 读取 config 下的数据方法
2019/10/13 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
Open and Print a Word Document
2007/06/15 Javascript
仿新浪微博返回顶部的jquery实现代码
2012/10/01 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
JavaScript编程的单例设计模讲解
2015/11/10 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
2016/05/30 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
JS中图片压缩的方法小结
2017/11/14 Javascript
Angular4自制一个市县二级联动组件示例
2017/11/21 Javascript
基于vue2实现上拉加载功能
2017/11/28 Javascript
vue watch深度监听对象实现数据联动效果
2018/08/16 Javascript
Vant的安装和配合引入Vue.js项目里的方法步骤
2018/12/05 Javascript
微信小程序实现slideUp、slideDown滑动效果及点击空白隐藏功能示例
2018/12/11 Javascript
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
2019/04/08 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
在vue中使用console.log无效的解决
2020/08/09 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
Python中类的继承代码实例
2014/10/28 Python
qpython3 读取安卓lastpass Cookies
2016/06/19 Python
Python实现冒泡排序的简单应用示例
2017/12/11 Python
python 中的list和array的不同之处及转换问题
2018/03/13 Python
解决Python3 被PHP程序调用执行返回乱码的问题
2019/02/16 Python
Django框架创建mysql连接与使用示例
2019/07/29 Python
Pytorch实验常用代码段汇总
2020/11/19 Python
jupyter 添加不同内核的操作
2021/02/06 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
2021/03/04 Python
在线购买澳大利亚设计师手拿包和奢华晚装手袋:Olga Berg
2019/03/20 全球购物
高中数学教学反思
2014/01/30 职场文书
公司年会主持词
2014/03/22 职场文书
大学生求职信例文
2014/06/29 职场文书
小学班主任工作经验交流材料
2015/11/02 职场文书