Given an integer n, return the number of trailing zeroes in n!.
Example 1:
Input: 3 Output: 0 Explanation: 3! = 6, no trailing zero.
Example 2:
Input: 5 Output: 1 Explanation: 5! = 120, one trailing zero.
Note: Your solution should be in logarithmic time complexity.
给一个整数n,求n的阶乘有多少个0。
我们发现如果想要结果末尾是0,必须是分解质因数之后,2 和 5 相乘才行,同时因数分解之后发现5的个数远小于2, 因此我们只需要求解这n数字分解质因数之后一共有多少个5即可。
//java
class Solution {
public int trailingZeroes(int n) {
int sum = 0;
while(n > 0){
sum += n / 5;
n = n / 5;
}
return sum;
}
}