|
题目:设计一个算法,计算出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:
def trailingZeros(self, n):
count = 0
while n!=0:
n=n/5
count +=n
return count
|