欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

LintCode 2. 尾部的零 JavaScript算法

程序员文章站 2022-03-24 17:36:56
...

描述

设计一个算法,计算出n阶乘中尾部零的个数

样例

- 样例  1:
	输入: 11
	输出: 2
	
	样例解释: 
	11! = 39916800, 结尾的02个。

- 样例 2:
	输入:  5
	输出: 1
	
	样例解释: 
	5! = 120, 结尾的01个。

挑战

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 2. 尾部的零 JavaScript算法

LintCode 2. 尾部的零 JavaScript算法
可以看出我的这种算法运行时间上不是最快的,不知上面的大神是怎么写的。。。