172. Factorial Trailing Zeroes

Posted whl-hl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了172. Factorial Trailing Zeroes相关的知识,希望对你有一定的参考价值。

1. 问题描述

Given an integer n, return the number of trailing zeroes in n!.
Note: Your solution should be in logarithmic time complexity.
Tags: Math
Similar Problems: (H) Number of Digit One

2. 解题思路

  • 分解质因子, 当且仅当 因子中出现 一对 (2,5)时, 最后结果会增加一个 trailing zero.
    1. 2的个数永远多于5个个数.
    2. 计算5的个数时, 最简单的方法是 SUM(N/5^1, N/5^2, N/5^3...)

3. 代码

class Solution {
public:
    int trailingZeroes(int n) 
    { 
        if(n < 1) 
        {
            return 0;
        }
        int nCount = 0;
        while (0 != n/5)
        {
            n = n/5;
            nCount = nCount + n;
        }
        return nCount;
    }
};

4. 反思

参考:http://www.cnblogs.com/ganganloveu/p/4193373.html

以上是关于172. Factorial Trailing Zeroes的主要内容,如果未能解决你的问题,请参考以下文章

172. Factorial Trailing Zeroes

172. Factorial Trailing Zeroes

172. Factorial Trailing Zeroes

172. Factorial Trailing Zeroes

172. Factorial Trailing Zeroes

Leetcode 172 Factorial Trailing Zeroes