📜  阶乘 js 中的尾随零 - Javascript (1)

📅  最后修改于: 2023-12-03 15:42:23.624000             🧑  作者: Mango

阶乘 JS 中的尾随零

在计算机科学领域,阶乘是一种常见的操作,是指如果 $n$ 是正整数,则 $n$ 的阶乘($n!$)是乘积 $n*(n-1)(n-2)...32*1$。在此基础上,我们可以探讨如何在 JavaScript 中计算阶乘,并且找到阶乘中的尾随零。

计算阶乘

计算阶乘可以使用递归或者循环。下面是使用循环的方法:

function factorial(n) {
    let result = 1;
    for (let i = 2; i <= n; i++) {
        result *= i;
    }
    return result;
}
尾随零

在阶乘中,尾随零指末尾有多少个零。例如,$5!$ 的末尾有一个零,$10!$ 的末尾有两个零。可以证明,阶乘末尾的零的个数就是这个数可以被 $10$ 整除的次数。因为 $10$ 可以分解为 $2*5$,在阶乘的展开式中,因子 $2$ 的数量显然比 $5$ 多,所以只要计算因子 $5$ 的个数即可。

下面是计算阶乘尾随零的函数:

function countTrailingZeros(n) {
    let count = 0;
    while (n >= 5) {
        n = Math.floor(n / 5);
        count += n;
    }
    return count;
}
总结

在 JavaScript 中计算阶乘和计算阶乘尾随零并不复杂。使用循环或者递归可以计算阶乘,使用计算因子 $5$ 的个数可以计算阶乘尾随零。