我想起来以前有一道题:n!最后一位是几?
1! = 1;
2! = 2;
3! = 6;
4! = 24;
5! = 120 = 1*2*3*4*5 = 1*3*4*2*5;
当n>5时,最后一位必为0。
所以这道题也是类似,只需要看有多少个2*5就好了。因为在阶乘中, 2比5多,所以只需要看有多少个5。

/**
* @param {number} n
* @return {number}
*/
var trailingZeroes = function(n) {
if (n < 5) return 0;
return Math.floor(n / 5 + trailingZeroes(Math.floor(n / 5)));
};

本文探讨了一道数学题目,即如何计算任意正整数阶乘结果末尾的零的数量。通过分析发现,该问题转化为计算阶乘中包含多少对2和5的乘积,由于2的数量总是多于5,故只需关注5的数量。文章提供了一个递归函数实现,通过不断除以5并向下取整来计算5的倍数个数。
512

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



