public class Solution {
public int trailingZeroes(int n) {
int oushu=0;
int jishu=0;
int zero=0;
for(int i=1;i<=n;i++)
{
int c=i;
if(i%10==0)
{
while(c%10==0)
{
zero++;
c=c/10;
}
}
else
{
if(i%2==0)
oushu++;
else
jishu++;
}
}
if(jishu>oushu)
return zero+oushu;
else
return zero+jishu;
}
}
Submission Result: Time Limit ExceededMore Details
Last executed input: | 1808548329 |
public class Solution {
public int trailingZeroes(int n) {
int x=0;
while(n>0)
{
x=x+n/5;
n=n/5;
}
return x;
}
}
只有2和5相乘才会出现0,其中整十也可以看做是2和5相乘的结果,所以,可以在n之前看看有多少个2以及多少个5就行了,又发现2的数量一定多于5的个数,于是我们只看n前面有多少个5就行了,于是n/5就得到了5的个数,还有一点要注意的就是25这种,5和5相乘的结果,所以,还要看n/5里面有多少个5,也就相当于看n里面有多少个25,还有125,625.。。