昨天被前面的误导了,当然自己思考也不周全,进位的0目前是不可预估的,但是也是不可能进入后续连续的尾数0中的。所以统计5的个数就行了,但是楼上没有写完整的,现给出自己的两种实现(真心不愿意打开myeclipse,所以用C实现):
int GetCountOf5(int n)
{
int i, res = 0;
for(i = 5; i <= n; i += 5)
{
int temp = i;
while(temp%5 == 0)
{
res++;
temp /= 5;
}
}
return res;
}
int GetCountOfFive(int n)
{
int i, res = 0, maxNum = 0;
if(n < 5)
return 0;
for(i = n; i > n-5; i--)
{
if(i%5 == 0)
{
maxNum = i;
break;
}
}
res += maxNum/5;
res += GetCountOfFive(maxNum/5);
return res;
} |