leetcode-阶乘后的零

给定一个整数 n,返回 n! 结果尾数中零的数量。

示例 1:

输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。

示例 2:

输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.

说明: 你算法的时间复杂度应为 O(log n) 

 

位数出现0就意味着结果能分解出若干个10,10可以分解成5和2的乘积,2出现的次数远远比5来得多,也就是说,这道题可以转换成这个数能分解出多少个5

class Solution {
public:
int trailingZeroes(int n) {
return count(n);
}

int count(int n)
{
if(n<5)
{
return 0;
}
else
{
return n/5+count(n/5);
}
}
};

posted @ 2019-04-11 11:55  StephenCCCC  阅读(161)  评论(0编辑  收藏  举报