题目:
Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
对n!进行质因数分解n!=2^x * 3^y * 5^z * .....,容易看出,n!尾部零的数量和x和z有关,且min(x,z)=z,即有一个5,至少有一个2;
因此,只要计算出z的值即可。
代码:
public class Solution {
public int trailingZeroes(int n) {
int ret = 0;
while(n > 0){
ret += n/5;
n /= 5;
}
return ret;
}
}