LeetCode--172. Factorial Trailing Zeroes
来源:互联网 发布:windows缩小图片大小 编辑:程序博客网 时间:2024/05/19 14:37
Problem:
Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
Analysis:
- 对n!做质因数分解n!=2x*3y*5z*… 显然0的个数等于min(x,z),并且min(x,z)==z
证明:
对于阶乘而言,也就是1*2*3*…*n [n/k]代表1~n中能被k整除的个数 那么很显然 [n/2] > [n/5]
(左边是逢2增1,右边是逢5增1) [n/2^2] > n/5^2 …… [n/2^p] >
n/5^p 随着幂次p的上升,出现2^p的概率会远大于出现5^p的概率。
因此左边的加和一定大于右边的加和,也就是n!质因数分解中,2的次幂一定大于5的次幂
还有一点要注意的就是25这种,5和5相乘的结果,所以,还要看n/5里面有多少个5,也就相当于看n里面有多少个25,还有125,625,,,
例如n=25, n!=25*24*23*…15…*10…*5…*1=(5*5)*24*23…(5*3)…(5*2)…(5*1)…*1,其中25可看成5*5,多了一个5,应该加上
//处理这个问题也很简单,首先对n÷5,移除所有的单个5,然后÷25,移除额外的5,以此类推。下面是归纳出的计算后缀0的公式。
//n!后缀0的个数 = n!质因子中5的个数= floor(n / 5) + floor(n / 25) + floor(n / 125) + ….
Answer:
public class Solution { public int trailingZeroes(int n) { int count=0; while(n/5 !=0){ n = n / 5; count += n; } return count; }}
1 0
- LeetCode 172.Factorial Trailing Zeroes
- [LeetCode]172.Factorial Trailing Zeroes
- LeetCode 172. Factorial Trailing Zeroes
- 【LeetCode】172.Factorial Trailing Zeroes
- [leetcode] 172.Factorial Trailing Zeroes
- 【LeetCode】172. Factorial Trailing Zeroes
- 172. Factorial Trailing Zeroes LeetCode
- leetcode: 172. Factorial Trailing Zeroes
- LeetCode--172. Factorial Trailing Zeroes
- [LeetCode]172. Factorial Trailing Zeroes
- leetcode 172. Factorial Trailing Zeroes
- LeetCode *** 172. Factorial Trailing Zeroes
- LeetCode 172. Factorial Trailing Zeroes
- leetcode-172. Factorial Trailing Zeroes
- 【leetcode】172. Factorial Trailing Zeroes
- 172.[Leetcode]Factorial Trailing Zeroes
- Leetcode 172. Factorial Trailing Zeroes
- leetcode 172. Factorial Trailing Zeroes
- 有没有必要阅读源码
- 深入理解RunLoop
- VB.net版机房收费-ConfigurationManager类引用方法
- UVA--1211(二分+前缀和)
- 关于NIS服务绑定和mount挂载的问题
- LeetCode--172. Factorial Trailing Zeroes
- 蓝桥杯 历届试题 振兴中华
- Toast的参数选择
- Hust oj 1521 Marshal's Confusion III(整数快速幂)
- CF 615 E Hexagons(找规律)
- 带参数的宏定义
- 感受HTML5 Audio API带来的视听盛宴
- F - 播放器
- Struts中的拦截器——登录验证实例