172. 阶乘后的零
难度:简单
给定一个整数 n,返回 n! 结果尾数中零的数量。
示例 1:
输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。
示例 2:
输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.
说明: 你算法的时间复杂度应为 O(log n) 。
解答:
class Solution {
//时间复杂度O(N),空间复杂度O(1)
public int trailingZeroes(int n) {
int zeroCount = 0;
for(int i = 5; i <= n; i += 5){
int currentFactor = i;
while(currentFactor % 5 == 0){
zeroCount++;
currentFactor /= 5;
}
}
return zeroCount;
}
}
class Solution {
//时间复杂度O(logN),空间复杂度O(1)
public int trailingZeroes(int n) {
int zeroCount = 0;
while(n > 0){
n /= 5;
zeroCount += n;
}
return zeroCount;
}
}
参考自:
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/factorial-trailing-zeroes/solution/c-shu-xue-xiang-xi-tui-dao-by-zeroac/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。