思路:
求阶乘的末尾0的个数。
n的阶乘可以写成:
n!=2x∗3y∗5z...
即所有质因子的乘积,只有一对2和5两个质因子相乘会贡献一个末尾0,又因为x一定大于z,所以只需计算有多少个质因子5即可。
class Solution {
public:
int trailingZeroes(int n) {
int ans = 0;
while(n) {
ans += n/5;
n /= 5;
}
return ans;
}
};
计算阶乘末尾0的数量
本文介绍了一种计算任意正整数阶乘末尾0数量的方法。通过分析质因数分解,指出只需要关注5的倍数即可。并提供了一个简洁的C++代码实现。

219

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



