国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python求解水仙花數(shù)的方法

2020-01-04 19:16:28
字體:
供稿:網(wǎng)友

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

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

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

  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程序設(shè)計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 兴海县| 赤壁市| 玉林市| 麻江县| 嘉善县| 福鼎市| 德化县| 门头沟区| 霸州市| 繁峙县| 剑阁县| 邛崃市| 防城港市| 文成县| 绥棱县| 庄浪县| 吕梁市| 永嘉县| 香河县| 昌图县| 巴彦淖尔市| 桂林市| 湟中县| 焦作市| 梨树县| 平湖市| 宁乡县| 金华市| 城固县| 三台县| 云安县| 偏关县| 万安县| 乌兰察布市| 吴江市| 汶川县| 德令哈市| 耒阳市| 南投县| 沙洋县| 个旧市|