LintCode 2. 尾部的零 JavaScript算法
程序员文章站
2022-03-24 17:36:56
...
描述
设计一个算法,计算出n阶乘中尾部零的个数
样例
- 样例 1:
输入: 11
输出: 2
样例解释:
11! = 39916800, 结尾的0有2个。
- 样例 2:
输入: 5
输出: 1
样例解释:
5! = 120, 结尾的0有1个。
挑战
O(logN)的时间复杂度
解析
既然他让求多少个零, 那么, 在什么情况下能够得到 0 呢?
当然, 出现 5 的倍数的情况下, 不就会出现一个 0 吗? (5 x 2 = 10)
那么出现 5^2 的时候, 将会出现 00 的情况 (25 x 4 = 100)
const trailingZeros = function (n) {
var res = 0;
while(n>0) {
n=parseInt(n/5);
res+=n;
}
return res
}
运行结果
可以看出我的这种算法运行时间上不是最快的,不知上面的大神是怎么写的。。。
上一篇: Lintcode Python之移动零
下一篇: 【LintCode刷题】92. 背包问题
推荐阅读
-
LintCode 1347. 尾随零 JavaScript算法
-
设计一个算法,计算出n阶乘中尾部零的个数
-
LintCode 1314. 2的幂 JavaScript算法
-
LintCode 1201. 下一个更大的数 II JavaScript算法
-
LintCode 1285. 四的乘方 JavaScript算法
-
LintCode 547. 两数组的交集 JavaScript算法
-
2.尾部的零
-
LintCode 112. 删除排序链表中的重复元素 JavaScript算法
-
LintCode 868. 子数组的最大平均值 JavaScript算法
-
lintcode(二):尾部的零 【简单题】python