Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
Solution :计算包含的2和5组成的pair的个数,因为5的个数比2少,所以2和5组成的pair的个数由5的个数决定。
- 观察15! = 有3个5(来自其中的5, 10, 15), 所以计算n/5就可以。
- 但是25! = 有6个5(有5个5来自其中的5, 10, 15, 20, 25, 另外还有1个5来自25=(5*5)的另外一个5),
1 class Solution { 2 public: 3 int trailingZeroes(int n) { 4 int ret=0; 5 while(n){ 6 ret += n/5; 7 n /= 5; 8 } 9 return ret; 10 } 11 };