阶乘后的零
给定一个整数 n,返回 n! 结果尾数中零的数量。
示例 1:
输入: 3 输出: 0 解释: 3! = 6, 尾数中没有零。
示例 2:
输入: 5 输出: 1 解释: 5! = 120, 尾数中有 1 个零.
说明: 你算法的时间复杂度应为 O(log n) 。
这条题一开始的思路是求2和5的个数。。。。
后来发现只要求5的个数就行了。。。
但是慢慢加5的话会TLE。。。
所以就有了下面的方法。。。
一个数除5得到的结果就是该数里5的个数,然后再循环,就能得到后面的5的个数(也就是原数里的25的另一个5的个数)。。。如此循环,得到5的总数。
int trailingZeroes(int n) { int count=0; while(n) { n/=5; count+=n; } return count; }