问题描述很简单: 求解N阶乘的尾随零个数
而所谓尾随零个数,即是从个位数开始,数字连续为0的个数.
譬如:
3!(阶乘符号,下同) = 3 * 2 * 1 = 6, 尾随零个数为0
5!...= 5 * 4 * 3 * 2 * 1 = 120, 尾随零个数为1
10!...= 10 * 9 * … * 1 = 3628800, 尾随零个数为2
OK,明白问题之后,我们就来尝试算一算吧~
方法1
既然要求解阶乘值的尾随零个数,直观的方法就是首先算出阶乘值,然后对10取模来计算尾随零个数...10因子就知道了N阶乘有多少个尾数零,这里我们不能直接计算N阶乘的大小(还记的之前那个溢出问题吗),而是要通过N阶乘的定义(或者其他方式)来直接计算~
这里我们需要一点技巧:
首先我们对10进行一下素数分解...的10因子个数(即尾数零个数)为:
min(factor_2_count(N!), factor_5_count(N!))