解题思路:
给定一个整数N,求它的阶乘后面有几个0,将一般有零整数拆分之后,其0产生的原因必然是因为2*5导致的,而且2的数量必然大于等于5的数量(5为奇数,若2不去抵消5,必然不构成0)。
由上述问题可知,对于一个整数N,其在1~N中,能够被5整除的数有m个,则必然有m个0,但是对于25这种由5*5构成的则少加了一个0,为了补全,需要在1~N/5中再次寻找能够被5整除的,依次循环下去。
代码:
public class Solution { public int trailingZeroes(int n) { int ans = 0; while(n > 4) { n /= 5; ans += n; } return ans; } }