LintCode 2 : 尾部的零(java实现)
来源:互联网 发布:579999小马哥永久域名 编辑:程序博客网 时间:2024/06/06 14:36
题目
设计一个算法,计算出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(个)
阅读全文