python求解水仙花数的方法

python求解水仙花数的方法,第1张

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

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

您可能感兴趣的文章:使用Python求解最大公约数的实现方法Python基于更相减损术实现求解最大公约数的方法Python实现求最大公约数及判断素数的方法Python实现利用最大公约数求三个正整数的最小公倍数示例Python求解平方根的方法python使用分治法实现求解最大值的方法Python实现高效求解素数代码实例Python线性方程组求解运算示例python实现求解列表中元素的排列和组合问题Python实现简单求解给定整数的质因数算法示例Python基于辗转相除法求解最大公约数的方法示例 总结

以上是内存溢出为你收集整理的python求解水仙花数的方法全部内容,希望文章能够帮你解决python求解水仙花数的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1204434.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存