题目描述:


给定一个整数 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

相关文章:

  • 2021-11-09
  • 2022-02-08
  • 2022-01-03
  • 2021-08-26
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
  • 2021-08-31
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-09-23
  • 2021-04-24
  • 2021-08-18
  • 2021-05-16
  • 2022-12-23
相关资源
相似解决方案