计算n阶乘中尾部零的个数
假设 n = 5;
n! = 5 X 4 X 3 X 2 X 1 = 120。 尾部零的个数为:2。
假设 n = 15
n! = 15 X 14 X 13 X 12 X 11 X 10 X 9 X.....X 5 X 4 X 3 X 2 X 1 = 1307674368000。
尾部的零的个数为:3。
由以上可知:
第一个,当 n = 5 的时候,零的出现是由于 2 X 5。
第二个,当 n = 15的时候,零的出现是由于 10 X 【2 X 5 】X 【4(或者别的偶数) X 15】。
因此可以总结为,零的出现是由于 2X5 。
所以接下来我们只需要统计 2 X 5 的个数即可。我们可以知道 2 的个数是多余 5 的个数的,所以我们只需要统计 5 的个数即可查找出尾部零的个数。
经过以上分析,我们只需要统计阶乘中有多少 5 即可。
public long zeros(long n)
{
long sum = 0;
while(n != 0){
sum += n / 5;
n = n / 5;
}
return sum;
}