分析
分析规律可知,如果要产生一个0,必是 2 * 5,因此就转化成要做出1~n中有多少对2和5,但是可以分解出2的数显然比可以分解出5的数要多,因此5的数量显然比2少,故只需要找出1~n中5的数量即可。
而要找出某个数k在1~n中出现的次数,其公式为:
c
o
u
n
t
=
n
/
k
+
n
/
k
2
+
n
/
k
3
+
n
/
k
4
.
.
.
.
.
count = n / k + n / k^2 +n/k^3+n/k^4.....
count=n/k+n/k2+n/k3+n/k4.....
代码如下:
import java.util.*;
public class Solution {
/**
* the number of 0
* @param n long长整型 the number
* @return long长整型
*/
public long thenumberof0 (long n) {
// write code here
long count = 0;
while(n > 0) {
count = count + n / 5;
n = n / 5;
}
return count;
}
}