4.18
看到是输入数据是 long型的,就知道不能笨笨的算数出来再数数了。
想到了找相乘得0的情况,比如45=20,56=30,58=40等。
但是依旧没有什么好的思路。
看了网上的答案,原来重点是回到分解因数有多少个5的问题之上。
很巧妙,我没有想到。
有了想法,代码的实现还是很简单的。
class Solution {
/*
* param n: As desciption
* return: An integer, denote the number of trailing zeros in n!
*/
public long trailingZeros(long n) {
if(n == 0 || n == 1){// write your code here{
return 0;
}
long count = 0;
for(int i = 1; i <= (int)Math.pow(n,0.2);i++){
count += (long)(n/(Math.pow(5,i)));
}
return count;
}
};
742

被折叠的 条评论
为什么被折叠?



