您的位置:首页 > 大数据 > 人工智能

leetcode Factorial Trailing Zeroes非负整数阶乘后尾0个数

2015-08-04 15:25 531 查看
非负整数阶乘后尾0个数,只有2和5相乘才会出现0,其中整十也可以看做是2和5相乘的结果,所以,可以在n之前看看有多少个2以及多少个5就行了,又发现2的数量一定多于5的个数,于是我们只看n前面有多少个5就行了,于是n/5就得到了5的个数,还有一点要注意的就是25这种,5和5相乘的结果,所以,还要看n/5里面有多少个5,也就相当于看n里面有多少个25,还有125,625.即:



如n=32,n!=263130836933693530167218012160000000有尾部7个零,而按照上面公式f(32)=32/5+32/25=6+1=7;

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