您的位置:首页 > 其它

LeetCode N阶乘的尾数为0的个数

2015-01-27 10:19 197 查看
原题如下

Given an integer n, return the number of trailing zeroes in n!.

Note: Your solution should be in logarithmic time complexity.
分析,N的阶乘 n!=5^m * 2^k * ... ,因此只要我们找出m和k,并且取最小值就是末尾0的个数。
进一步分析我们发现2的倍数出现的频率比5出现的高,也就是说k>m. 我们只要找出m也就是所需要的答案。

如下是Java实现版本:

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