解析:
只有2和5相乘才会出现0,其中整十也可以看做是2和5相乘的结果,所以,可以在n之前看看有多少个2以及多少个5就行了,又发现2的数量一定多于5的个数,于是我们只看n前面有多少个5就行了,于是n/5就得到了5的个数,还有一点要注意的就是25这种,5和5相乘的结果,所以,还要看n/5里面有多少个5,也就相当于看n里面有多少个25,还有125,625。。。
public class Solution {
public int trailingZeroes(int n) {
int count=0;
while(n>0){
count+=n/5;
n/=5;
}
return count;
}
}
本文介绍了一种高效计算任意正整数阶乘结果中尾部0的数量的方法。通过分析得出,只需要关注5的倍数及其幂次方的贡献即可。文章提供了一个简洁的Java实现。
302

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



