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

LintCode 2 : 尾部的零(java实现)

2017-12-26 11:13 405 查看
题目

设计一个算法,计算出n阶乘中尾部零的个数

样例

11! = 39916800,因此应该返回 2

代码

public class Solution {
/*
* @param n: An integer
* @return: An integer, denote the number of trailing zeros in n!
*/
public long trailingZeros(long n) {
// write your code here, try to do it without arithmetic operators.
long count = 0;
for(int i = 1; Math.pow(5,i) <= n; i++) {
count += n / (long)Math.pow(5,i);
}
return count;
}
}


分析

代码部分不难,重要的是数学部分的理解。

举例

1000/5 + 1000/25 + 1000/125 + 1000/625

= 200 + 40 + 8 + 1

= 249(个)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 算法 lintcode