/*
功能:
输入:
输出: 计算n!末尾有多少个0
返回:
功能:
输入:
输出: 计算n!末尾有多少个0
返回:
*/
Demo.java
public static int getZeroCount(int n)
{
int zeroCount = 0;
int multipleOf5 = 5;
while(n >= multipleOf5)
{
zeroCount += n / multipleOf5;
multipleOf5 *= 5;
}
return zeroCount;
}
算法分析:乘积末尾0的个数依赖于2和5的个数。对于阶乘来说,2的因子肯定多于5的因子,所以主要考虑5的个数。
举例说明:如2016
2016/5 = 403
403/5 = 80
80/5 = 16
16/5 = 3
所以0的个数就是403+80+16+3 = 502