输出 结尾0的个数

这是网上的一道题目,内容如下:

描述:

给你一个正整数列表 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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值