通过一个简单的算法来了解reduce的巧用。
构建函数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
简单的记录下。