- 阶乘后的零
给定一个整数 n,返回 n! 结果尾数中零的数量。
示例 1:
输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。
示例 2:
输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.
说明: 你算法的时间复杂度应为 O(log n) 。
解题思路:要找有没有0,就要看2和5,2肯定比5多,所以只需要看里面的5就行,这个很容易理解。
接下去就是5有几个,怎么找了,这个需要好好理解一下
截图来自:
https://leetcode-cn.com/problems/factorial-trailing-zeroes/solution/jie-cheng-hou-de-ling-die-dai-ji-di-gui-jie-fa-by-/
最后学习内容:
熟悉了递归的写法,同时这里也是一个闭包的场景
所以最后的代码是:
var trailingZeroes = function(n) {
const helper = (n,total)=>{
if(n<5){
return total;
}
else{
let count = Math.floor(n/5);
return helper(count,total+count)
}
}
return helper(n,0)
};