题目描述
给你一个正整数列表 L, 输出L内所有数字的乘积末尾0的个数。(提示:不要直接相乘,数字很多,相乘得到的结果可能会很大)。
例如: L=[2,8,3,50],
则输出:2
代码如下:
count=[0,0] #拆分后2和5的数量
def f(n):
while(n%2==0):
count[0]+=1
n/=2
while(n%5==0):
count[1]+=1
n/=5
map(f,L)
print(min(count[0],count[1]))
解析:
不断得拆分成2和5,最后剩的整数一定是以1,3,7,9结尾的,这样的整数无论怎么相乘结尾都是1,3,7,9,一定得不到0。