2. 尾部的零
设计一个算法,计算出n阶乘中尾部零的个数
样例
11! = 39916800,因此应该返回 2
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) {
/*
* 思路很巧妙的一道题:阶乘后面出现0只有2*5或者是10才会出现
* 2出现的次数肯定大于5出现的次数
* 所以我们只要找到5的倍数出现的次数就好了
* 打比方我们传进来的的数是26 只有25 20 15 10 5 满足条件
* */
long long count = 0;
while (n > 0) {
count += (n / 5);
n /= 5;
}
return count;
}
};