javascript - 在javascript中计算尾随零
问题描述
如何计算给定数字的阶乘中尾随零的数量。
N! = 1 * 2 * 3 * 4 ... N
对此有任何帮助吗?
解决方案
因为零来自因子 5 和 2 相乘,所以迭代所有数字从1
到输入数字,每当找到这些因子时,就会增加五和二的累积计数。然后,返回这两个计数中较小的一个:
function zeroCount(n) {
let fives = 0;
let twos = 0;
for (let counter = 2; counter <= n; counter++) {
let n = counter;
while (n % 2 === 0) {
n /= 2;
twos++;
}
while (n % 5 === 0) {
n /= 5;
fives++;
}
}
return Math.min(fives, twos);
}
console.log(zeroCount(6)); // 720
console.log(zeroCount(10)); // 3628800
推荐阅读
- python - Docker Locust locustfile.py 未找到
- excel - Excel根据单元格值在特定工作表上复制粘贴范围
- spring-boot - JPA CriteriaSepcification IN 子句
- postgresql - otj-pg-embedded > Embedded PostgreSQL > 错误:“PROCEDURE”处或附近的语法错误
- typescript - 打字稿条件动态模型类型声明
- r - 如何合并随时间变化的变量 [R]
- mongodb - mongo db 错误 - SyntaxError: missing ; 声明之前
- r - Rstudio 拥有 Excelfile 权限 - XLconnect
- apache-spark - Spark SQL 中的 ORDER BY 与 SORT BY
- javascript - 如何在ts中将值动态设置为数组中的对象