题目:
Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
翻译:
给定一个整数n,返回n!末尾的0的个数。
提示:你的解决方案应该运行在O(log(n))的时间复杂度。
分析:
我们知道要形成一个末尾的0,需要组合出2和5这两个质因子。然而在n!中,质因子2的个数永远大于5的个数。所以,问题转换为对n!计算5的质因子个数。
代码:
public class Solution {
public int trailingZeroes(int n) {
int s=0;
while(n>=5){
n/=5;
s+=n;
}
return s;
}
}

本文介绍了一种高效算法,用于计算给定整数n的阶乘(n!)末尾0的数量。该算法运行时间复杂度为O(log n),通过递归除以5并累加商数来快速求解。
1万+

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



