码迷,mamicode.com
首页 > 其他好文 > 详细

172. Factorial Trailing Zeroes

时间:2016-09-01 23:07:56      阅读:353      评论:0      收藏:0      [点我收藏+]

标签:

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

标签:

原文地址:http://www.cnblogs.com/whl2012/p/5831530.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!