描述
给定一个整数n,返回n!(n的阶乘)的尾随零的个数。
您的解法时间复杂度应为对数级别。
样例
样例1
输入: n = 5
输出: 1
解释:
1*2*3*4*5=120
样例2
输入: n = 10
输出: 2
解释:
1*2*3*4*5*6*7*8*9*10=3628800
题解
最终尾随零的数量之和质因子中2和5的数量有关,很容易想到质因子5的数量一定会比2少,所以只需要算出n!的质因子5的数量即可
所以我们考虑1~n!之间5的倍数,25的倍数,125的倍数,625的倍数…的数量,即可算出答案
class Solution {
public:/*** @param n: a integer* @return: return a integer*/int trailingZeroes(int n) {// write your code hereint res = 0;while (n >= 5) {res += n / 5;n /= 5;}return res;}
};