本文共 618 字,大约阅读时间需要 2 分钟。
如何计算整数n的阶乘末尾零的数量
计算整数n的阶乘末尾零的数量可以通过分析阶乘中因数5的数量来实现。每对因数2和5会生成一个末尾的零,而因为阶乘中的因数2总是比因数5多,因此可以通过计算因数5的数量来确定末尾零的多少。
步骤如下:
代码实现:
function trailingZeroes($n) { $count = 0; $divisor = 5; while ($divisor <= $n) { $temp = intval($n / $divisor); $count += $temp; $divisor *= 5; } return $count;}
例如,输入为5时,步骤如下:
再看n=3:
这样的方法时间复杂度为O(log n),非常高效。
转载地址:http://ahgyk.baihongyu.com/