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

程序员面试金典-面试题 16.05. 阶乘尾数

时间:2020-03-14 15:06:02      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:code   复杂度   说明   示例   class   turn   就是   res   没有   

题目:

设计一个算法,算出 n 阶乘有多少个尾随零。

示例 1:

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

输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.
说明: 你算法的时间复杂度应为 O(log n) 。

分析:

计算阶乘后0的个数实际上就是在数5,一个5和一个偶数相乘就会产生一个0,而25会产生两个0,所以对于n大于0时,数它的5有多少个,除以5,如果还大于0就继续除以5,也就是在数25有几个,反复执行下去。

程序:

class Solution {
    public int trailingZeroes(int n) {
        int res =  0;
        while(n > 0){
            res += n / 5;
            n /= 5;
        }
        return res;
    }
}

 

程序员面试金典-面试题 16.05. 阶乘尾数

标签:code   复杂度   说明   示例   class   turn   就是   res   没有   

原文地址:https://www.cnblogs.com/silentteller/p/12491855.html

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