最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2015年05月11日 10:11:32   作者:上大王  
這篇文章主要介紹了python求解水仙花數(shù)的方法,較為詳細的分析了水仙花數(shù)問題的概念與對應(yīng)解決方法的實現(xiàn)技巧,需要的朋友可以參考下

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

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

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

相關(guān)文章

最新評論

肥乡县| 仙居县| 陵水| 神池县| 侯马市| 河东区| 洛隆县| 永年县| 贵定县| 鹤壁市| 右玉县| 浏阳市| 白城市| 子长县| 山东省| 信宜市| 洱源县| 永新县| 台前县| 玛纳斯县| 台南县| 嘉定区| 甘洛县| 云和县| 安阳县| 宜宾县| 古交市| 滕州市| 普安县| 射洪县| 三都| 温宿县| 讷河市| 化德县| 阿坝| 贺兰县| 桐庐县| 焦作市| 明溪县| 民县| 大邑县|