leetcode刷题笔记172 阶乘后的零


题目描述:


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

示例1:

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

示例2:

输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.

说明: 你的解法应该为 O(logN) 时间复杂度。

题目分析:

要求末尾有多少个零,则该数应为x*10的形式等于x*(2*5k

也就是求该数分解质因子后有几个5就行,:如1*2*3*4*5=1*2*3*2*2*5(里面有一个5)所以结果为1个0

详见代码

 

解答代码:

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

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM