python求解水仙花数的方法

 更新时间:2015年05月11日 10:11:32   作者:上大王  
这篇文章主要介绍了python求解水仙花数的方法,较为详细的分析了水仙花数问题的概念与对应解决方法的实现技巧,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • 解决pycharm界面不能显示中文的问题

    解决pycharm界面不能显示中文的问题

    今天小编就为大家分享一篇解决pycharm界面不能显示中文的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • python中tkinter复选框使用操作

    python中tkinter复选框使用操作

    Python Tkinter 复选框用来选取我们需要的选项,它前面有个小正方形的方块,如果选中则有一个对号,也可以再次点击以取消该对号来取消选中,下面通过代码介绍下python中tkinter复选框使用操作,需要的朋友参考下吧
    2021-11-11
  • Python多线程编程(二):启动线程的两种方法

    Python多线程编程(二):启动线程的两种方法

    这篇文章主要介绍了Python多线程编程(一):启动线程的两种方法,本文讲解了将函数传递进Thread对象、继承自threading.Thread类两种方法,需要的朋友可以参考下
    2015-04-04
  • Pycharm 2to3配置,python2转python3方式

    Pycharm 2to3配置,python2转python3方式

    这篇文章主要介绍了Pycharm 2to3配置,python2转python3方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • python检测是文件还是目录的方法

    python检测是文件还是目录的方法

    这篇文章主要介绍了python检测是文件还是目录的方法,涉及Python针对文件及目录的检测技巧,需要的朋友可以参考下
    2015-07-07
  • 如何用Python一次性下载抖音上音乐

    如何用Python一次性下载抖音上音乐

    不知道什么时候开始,中国出现了南抖音、北快手的互文格局。喜欢抖音主要是两个初衷,学做菜听音乐。抖音捧红了很多人,也让很多本不怎么让大家熟知的歌曲、BGM,经过翻唱、混剪与视频搭配,从而传播大街小巷。有没有想过将这些好听的剪辑批量下载下来呢?
    2021-05-05
  • Python 获取当前路径3种方法

    Python 获取当前路径3种方法

    本文主要介绍了Python 获取当前路径3种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Python 文件操作技巧(File operation) 实例代码分析

    Python 文件操作技巧(File operation) 实例代码分析

    python遍历文件夹和文件 perl分割路径和文件名
    2008-08-08
  • Python的requests网络编程包使用教程

    Python的requests网络编程包使用教程

    requests包为Python扩展了各种基于HTTP的网络数据操作功能,包括各种请求与session和cookie等的追加,very强大,下面我们就来看一下Python的requests网络编程包使用教程
    2016-07-07
  • 解决pandas.DataFrame.fillna 填充Nan失败的问题

    解决pandas.DataFrame.fillna 填充Nan失败的问题

    今天小编就为大家分享一篇解决pandas.DataFrame.fillna 填充Nan失败的问题。具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11

最新评论