求N阶乘末尾0的个数

在logn的时间内 找到n!末尾有几个零

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

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

[java]  view plain  copy
  1. public int trailingZeroes(int n) {  
  2.        int count=0;  
  3.        while(n!=0){  
  4.           count+=n/5;  
  5.           n=n/5;  
  6.        }  
  7.        return count;  
  8.    }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值