首页 > 其他 > 详细

172. Factorial Trailing Zeroes

时间:2016-09-01 23:05:44      阅读:419      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!