經過一個簡單的算法來了解reduce的巧用。python
構建函數persistence(n),若是n>9,則返回0.不然繼續根據n的權重來分解n,如n=999,則分解爲9,9,9.那麼將9*9*9=729繼續作以上判斷,直到n<-9,結果輸出爲2,而persistence(4)則爲0.算法
利用python的強制轉換將int轉換爲str後巧用reduce能夠簡單的實現。函數
1 import operator 2 def persistence(n): 3 i = 0 4 while n > 9: 5 n = reduce(operator.mul,[int(y) for y in str(n) ], 1) 6 i += 1 7 if i != 0: 8 return n 9 else: 10 return i
簡單的記錄下。spa