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程序设计有所帮助。

相关文章

  • python的paramiko模块基本用法详解

    python的paramiko模块基本用法详解

    paramiko 是一个用于在Python中执行远程操作的模块,支持SSH协议,它可以用于连接到远程服务器,执行命令、上传和下载文件,以及在远程服务器上执行各种操作,这篇文章主要介绍了python的paramiko模块基本用法,需要的朋友可以参考下
    2023-08-08
  • Python基础篇之字符串的最全常用操作方法汇总

    Python基础篇之字符串的最全常用操作方法汇总

    我们在学习Python语言时会遇到各种各样的字符串方法处理,下面这篇文章主要给大家介绍了关于Python基础篇之字符串的最全常用操作方法的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • Python名片管理系统+猜拳小游戏案例实现彩(色控制台版)

    Python名片管理系统+猜拳小游戏案例实现彩(色控制台版)

    这篇文章主要介绍了Python名片管理系统+猜拳小游戏案例实现彩(色控制台版),文章围绕主题展开详细的内容介绍,具有一定的参考价值,感兴趣的小伙伴可以参考一下
    2022-08-08
  • Python入门教程(二十九)Python的RegEx正则表达式

    Python入门教程(二十九)Python的RegEx正则表达式

    这篇文章主要介绍了Python入门教程(二十九)Python的RegEx,RegEx 或正则表达式是形成搜索模式的字符序列。RegEx 可用于检查字符串是否包含指定的搜索模式,需要的朋友可以参考下
    2023-04-04
  • Python随机生成迷宫游戏的代码示例

    Python随机生成迷宫游戏的代码示例

    本文主要介绍了Python随机生成迷宫游戏的代码示例,Python可以通过生成二维数组模拟迷宫的结构,使用深度优先搜索和广度优先搜索等算法找到通路,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • python如何绘制极坐标轮廓图contourf

    python如何绘制极坐标轮廓图contourf

    这篇文章主要介绍了python如何绘制极坐标轮廓图contourf问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • python 获取url中的参数列表实例

    python 获取url中的参数列表实例

    今天小编就为大家分享一篇python 获取url中的参数列表实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • pyqt串口通信的项目实践

    pyqt串口通信的项目实践

    串口通信工业控制上面常用的,本文主要介绍了pyqt串口通信的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • pycharm 主题theme设置调整仿sublime的方法

    pycharm 主题theme设置调整仿sublime的方法

    今天小编就为大家分享一篇pycharm 主题theme设置调整仿sublime的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 关于Django显示时间你应该知道的一些问题

    关于Django显示时间你应该知道的一些问题

    将Django项目部署到Linux系统上进行测试时,发现操作记录的时间与服务器的时间不一致,相差13个小时。这主要是因为时区的问题,下面这篇文章主要总结介绍了关于Django显示时间你应该知道的一些问题,需要的朋友可以参考下。
    2017-12-12

最新评论