这是网上的一道题目,内容如下:
描述:
给你一个正整数列表 L, 如 L=[2,8,3,50], 输出L内所有数字的乘积末尾0的个数, 如样例L的结果为2.(提示:不要直接相乘,数字很多,可能溢出)
#coding:utf-8 ''' 思路:由于2x5=10,分别输出由2和5组成的列表元素乘积,得到2、5的个数,最小的个数即是末尾0的个数 ''' # m、k分别计算乘积式中2、5的个数 m,k=0,0 L=[2,8,3,50] def main(n): global m,k if n%2==0: m+=1 main(n/2) if n/2==1: return 1 elif n%5==0: k+=1 main(n/5) if n/5==1: return 1 if __name__ == '__main__': for i in L: main(i) print min(m,k) # 2