原题如下
Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
分析,N的阶乘 n!=5^m * 2^k * ... ,因此只要我们找出m和k,并且取最小值就是末尾0的个数。进一步分析我们发现2的倍数出现的频率比5出现的高,也就是说k>m. 我们只要找出m也就是所需要的答案。
如下是Java实现版本:
public class Solution {
public int trailingZeroes(int n) {
int rvl = 0;
while(n > 0){
rvl += n/5;
n = n/5;
}
return rvl;
}
}