面试题 16.05. 阶乘尾数

描述 :

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

题目 :

LeetCode 阶乘尾零 :

面试题 16.05. 阶乘尾数

172. 阶乘后的零

面试题 16.05. 阶乘尾数_第1张图片

分析 :

这个题如果硬算,一定会超时,其实我们可以统计有多少个0,实际上是统计 2和5一起出现多少对,不过因为 2 出现的次数一定大于 5 出现的次数,因此我们只需要检查 5 出现的次数就好了,那么在统计过程中,我们只需要统计 5、10、15、25、 ...5^n 这样5 的整数倍项就好了,最后累加起来,就是多少0。代码就是:

解析 :

class Solution {
    public int trailingZeroes(int n) {
        int count = 0;
        for(long num = 5; n / num > 0;num *= 5){
            count += n / num;
        }
        return count;
    }
}

这期就到这里 , 下期见!

你可能感兴趣的:(面试,职场和发展)