麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

python求解水仙花數的方法

2020-01-04 19:16:28
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了python求解水仙花數的方法,較為詳細的分析了水仙花數問題的概念與對應解決方法的實現技巧,需要的朋友可以參考下

本文實例講述了python求解水仙花數的方法。分享給大家供大家參考。具體如下:

一個N位的十進制正整數,如果它的每個位上的數字的N次方的和等于這個數本身,則稱其為花朵數。

  1. #!/usr/bin/python 
  2. def get_flower(n, ofile): 
  3. D_pow=[pow(i,n) for i in range(0,10)] 
  4. V_min=1*pow(10,n-1) 
  5. V_max=sum((9*pow(10,x) for x in range(0,n))) 
  6. T_count=0 
  7. print D_pow, V_max, V_min 
  8. nums=[1]+[0]*(n-1) 
  9. print 'Start:', nums 
  10. idx=n-1 
  11. tmp_l=[0]*10 
  12. while True: 
  13. nums[idx]+=1 
  14. if nums[idx]<10: 
  15. j=idx+1 
  16. while j<n: 
  17. nums[j]=nums[idx] # reset  
  18. j+=1 
  19. v=sum((D_pow[x] for x in nums)) 
  20. if v<=V_max and v>=V_min: 
  21. T_count+=1 
  22. #test if is flower 
  23. #print 'do test:', ''.join(map(str,nums)) 
  24. k=0 
  25. while k<10: 
  26. tmp_l[k]=0 
  27. k+=1 
  28. N=0 
  29. for k in nums: 
  30. tmp_l[k]+=1 
  31. N+=1 
  32. while N>0: 
  33. p=v%10 
  34. if tmp_l[p]>0: 
  35. tmp_l[p]-=1 
  36. N-=1 
  37. else
  38. break 
  39. v/=10 
  40. if N==0: 
  41. print >>ofile, 'hit', sum((D_pow[x] for x in nums)) 
  42. idx=n-1 
  43. elif idx==0: 
  44. print 'done' 
  45. break 
  46. else
  47. idx-=1 
  48. print 't_count', T_count 
  49. if __name__ == '__main__'
  50. with file('./f.txt''wb') as o: 
  51. get_flower(21, o) 
  52. #get_flower(3, o) 


希望本文所述對大家的Python程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一区二区久久精品66国产精品 | 亚洲第一成av人网站懂色 | 国产一区二精品区在线 | a网站在线 | 免费看一级毛片欧美 | 成人免费av在线 | 久久免费看片 | 日本在线不卡一区二区 | 日本中文一级片 | 久草在线高清 | 国产精品免费久久久 | 免费一区在线 | 国产精品视频久久久 | 亚洲精品无码不卡在线播放he | 久久色播| 媚药按摩痉挛w中文字幕 | www.17c亚洲蜜桃 | 青草久久av | 成人超碰97| 亚洲天堂在线电影 | 在线观看中文字幕国产 | 国产一国产精品一级毛片 | 久久生活片 | 久久久国产精品网站 | 91午夜免费视频 | 日韩一级片一区二区三区 | 色悠悠久久久久 | 欧美日本另类 | 欧美日韩亚洲在线观看 | 一级大黄毛片 | 久久久久久久99 | 国产亚洲精品久久久久婷婷瑜伽 | 亚洲精品一区国产精品丝瓜 | 欧美成人精品一区二区三区 | 女人裸体让男人桶全过程 | 在线看免费观看日本 | 超碰97国产在线 | 伊人午夜视频 | 日韩欧美精品中文字幕 | 黄色大片大毛片 | 色骚综合 |