Skip to content

Latest commit

 

History

History
38 lines (35 loc) · 1.16 KB

172. Factorial Trailing Zeroes.md

File metadata and controls

38 lines (35 loc) · 1.16 KB

172. 阶乘后的零

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

示例 1:

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

示例 2:

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

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

解法一

//时间复杂度O(logn), 空间复杂度O(1)
class Solution {
public:
    int trailingZeroes(int n) {
        int res = 0;
        while(n > 0) {
            int t = n / 5;
            res += t;
            n = t;
        }
        return res;//n因子中5的个数
    }
};

返回n的质因子中5的个数即可。因为对于每个5,总能找到一个因子2与其相乘得10,其它因子都不可能乘得10。故5的个数即为末尾0的个数。

2019/04/27 00:58