题目描述
给定一个整数n,计算出n!中尾部的零的个数。
思路
注意到,一个数尾部有0,其必能被10整除,即其含有因子5和2。又考虑到2的数量远远多于5,所以只需要计算小于等于该数的所有数字中,含有多少个因子5。
C++实现
class Solution {
public:
/**
* @param n: A long integer
* @return: An integer, denote the number of trailing zeros in n!
*/
long long trailingZeros(long long n) {
// write your code here
long long result = 0;
while (n != 0) {
n /= 5;
result += n;
}
return result;
}
};