香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

python求解水仙花数的方法


时间:2021-12-08 14:45 作者:admin610456


本文实例讲述了python/' target='_blank'>python求解水仙花数的方法。分享给大家供大家参考。具体如下:

一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数。

#!/usr/bin/Pythondef 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_countif __name__ == '__main__': with file('./f.txt', 'wb') as o:  get_flower(21, o)  #get_flower(3, o)

希望本文所述对大家的Python程序设计有所帮助。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)