给定一个整数n,返回n!(n的阶乘)的尾随零的个数。
注意事项
您的解法时间复杂度应为对数级别。
解题思路:
1.需要注意的是后缀0是由2,5相乘得来,因此只需看有多少个2,5即可
2质因子中2的个数总是大于等于5的个数。因此只要计数5的个数就可以了。
3.需要注意的是25中有25,20,15,10,5,但是25又可以分为5*5,
因此需要判断t=n/5后中t的5个数
public class Solution {
/**
* @param n: a integer
* @return: return a integer
*/
public int trailingZeroes(int n) {
// write your code here
int count = 0;
while(n != 0){
count += n/5;
n = n/5;
}
return count;
}
}
本文介绍了一种高效算法,用于计算给定整数n的阶乘(n!)尾随零的个数。通过分析质因子中2和5的分布,指出只需关注5的个数,因为2的个数总是更多。并提供了一个时间复杂度为对数级别的解决方案。
178

被折叠的 条评论
为什么被折叠?



