python reduce使用实例

通过一个简单的算法来了解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

简单的记录下。

posted @ 2015-12-14 23:31  Kirago  阅读(284)  评论(0编辑  收藏  举报