LintCode 2 : 尾部的零(java实现)
2017-12-26 11:13
405 查看
题目
设计一个算法,计算出n阶乘中尾部零的个数
样例
11! = 39916800,因此应该返回 2
代码
分析
代码部分不难,重要的是数学部分的理解。
举例
1000/5 + 1000/25 + 1000/125 + 1000/625
= 200 + 40 + 8 + 1
= 249(个)
设计一个算法,计算出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(个)
相关文章推荐
- 【LintCode-632】二叉树的最大节点(Java实现)
- 【LintCode-463】整数排序(Java实现-冒泡排序/选择排序/插入排序)
- 【LintCode-454】矩阵面积(Java实现)
- 【LintCode-1】A + B 问题(Java实现)
- 【LintCode-408】二进制求和(Java实现)
- 【LintCode-93】平衡二叉树(Java实现-递归算法)
- 【LintCode-569】各位相加(Java实现-循环/递归算法/O(1))
- java实现从头部及尾部删除指定长度字符
- 【LintCode-69】二叉树的层次遍历(Java实现)
- LintCode 3 : 统计数字(java实现)
- 【LintCode-655】大整数加法(Java实现)
- 【LintCode-66】二叉树的前序遍历(Java实现-递归算法/非递归算法)
- java实现统计N!尾部连续0的个数
- 【LintCode-366】斐波纳契数列 (Java实现)
- LintCode 1 : A + B 问题 (java实现)
- LintCode Java——尾部的零
- 【LintCode-457】经典二分查找问题(Java实现)
- 【LintCode-67】二叉树的中序遍历(Java实现-递归算法/非递归算法)
- 【LintCode-452】删除链表中的元素(Java实现)
- Lintcode高频题目汇总-Java实现