Сложность: medium
Дано целое число n, верните количество конечных нулей в n!.
Обратите внимание, что n! = n * (n - 1) * (n - 2) * ... * 3 * 2 * 1.
Пример:
Input: n = 3
Output: 0
Explanation: 3! = 6, no trailing zero.
👨💻 Алгоритм:
1️⃣Вычислите факториал n:
Инициализируйте переменную nFactorial значением 1.
Для каждого i от 2 до n включительно умножайте nFactorial на i.
2️⃣Подсчитайте количество конечных нулей в nFactorial:
Инициализируйте переменную zeroCount значением 0.
Пока nFactorial делится на 10 без остатка, делите его на 10 и увеличивайте zeroCount на 1.
3️⃣Верните значение zeroCount как количество конечных нулей в n!.
😎 Решение:
var trailingZeroes = function (n) {
let nFactorial = BigInt(1);
for (let i = 2; i <= n; i++) {
nFactorial *= BigInt(i);
}
let zeroCount = 0;
const ten = BigInt(10);
while (nFactorial % ten === BigInt(0)) {
nFactorial /= ten;
zeroCount++;
}
return zeroCount;
};Ставь 👍 и забирай 📚 Базу знаний