36.阶乘后的零
题目内容:

代码及思路:
1.一开始看到题目的思路是,把阶乘求出来,然后再统计0的个数,这样时间复杂度就比较高。
2.观察为什么会出现尾数为0的情况,可以很容易的看到出现零就是因为偶数与5相乘结果,因此尾数零的数量为多少可以转化为去计算阶乘因子中,5的个数有多少。那么如何寻找因子中包含5的倍数有多少个呢。
class Solution {
public:
int trailingZeroes(int n) {
int count=0;
while(n)
{
count+=n/5;
n=n/5;
}
return count;
}
};
本文探讨了计算阶乘后尾数零数量的问题,提出了一种高效算法,避免了直接计算阶乘带来的高时间复杂度。通过分析尾数零产生的原因,即偶数与5相乘的结果,将问题转化为计算阶乘因子中5的个数,从而简化了解决方案。
1099

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



