LintCode python 小白-简单题-2 尾部的0

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 00:05   11   0

题目:设计一个算法,计算出n阶乘中尾部零的个数

样例
11! = 39916800,因此应该返回 2

思路:
11=1*2*3*4*5*6*7*8*9*10*11
5或5的倍数与偶数相乘尾数会出现0。
例如:25:
一开始①:5,10,15,20,25 –>25/5=5
然后将①变成5*():5(1,2,3,4,5) —>5/5=1
总:5+1=6
例如:201
一开始:5,10,15,20,25,30,35,…,200—>201/5=40
然后:5(1,2,3,4,5,6,7,8,9,10,…,15,..,40)—->40/5=8
然后:5(1,2,3,4,5,6,7,8)—>8/5=1
总:40+8+1=49

该链接说的比较清楚:
http://www.cnblogs.com/theskulls/p/4875114.html

代码:

 class Solution:
    # @param n a integer
    # @return ans a integer
    def trailingZeros(self, n):
        count = 0
        while n!=0:
            n=n/5
            count +=n
        return count
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP