![在这里插入图片描述](https://img-blog.csdnimg.cn/e73b2636b3464cdba8cfb79d013f0ec2.png)
1、优化后数学计算
显然,n!的结果中尾随零的数量是由数字中 2 和 5 的个数决定的,没有一个数可以拆成 2 或5 的乘积我们就需要将其纳入计算。显然 2 的倍数会远多于 5 的倍数,因此我们只需要记录 5 的倍数出现的次数即可。我们从除以5 开始统计,每次都将除数乘以 5 ,直至最终除数大于被除数为止。
class Solution {
public:
int trailingZeroes(int n) {
int res = 0, div = 5;
while (n >= div) {
res += n / div;
div *= 5;
}
return res;
}
};