描述:
给你一个正整数列表 L, 如 L=[2,8,3,50], 输出L内所有数字的乘积末尾0的个数,如样例L的结果为2.(提示:不要直接相乘,数字很多,可能溢出).
代码:
L=[2,8,3,50]
def countn(x, n):
num = 0
while x % n == 0:
num += 1
x = x / n
return num
c2 = sum(map(countn, L, [2]*len(L)))
c5 = sum(map(countn, L, [5]*len(L)))
print min(c2, c5)
解题报告:
利用分解质因数的方法,查看每一个元素是否含有2或者5,如果有取两者中的最小的,即可,表示乘积中的以0结尾的个数。