您的位置:首页 > 编程语言 > Java开发

(java)求N阶乘末尾0的个数

2016-03-23 11:41 489 查看
在logn的时间内 找到n!末尾有几个零

首先,要清楚 n!末尾有几个零是由这个数字的质因子中有几个成对的2 和5 决定的。我们又知道n! = n(n-1)(n-2)...... 1 ,不难看出随着n的增大,n!中质因子2要比5多的多!

那么我们可以计算n中包含5的数量,这个数量就是末尾0的值代码如下所示:

public int trailingZeroes(int n) {
int count=0;
while(n!=0){
count+=n/5;
n=n/5;
}
return count;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 算法