Q:给定一个整数 n,返回 n! 结果尾数中零的数量。
示例 1:
输入: 3
输出: 0
解释: 3! = 6, 尾数中没有零。
示例 2:
输入: 5
输出: 1
解释: 5! = 120, 尾数中有 1 个零.
说明: 你算法的时间复杂度应为 O(log n) 。

A:如果按照全部阶乘了再去算0的个数,计算量太大。
可以发现,如果想多一个0,整个数字就多乘一个10,即只有乘因子有5的数字时会有零出现(毕竟2比5要多得多)。那么在1-n范围内5的倍数都是会增长零的。


public static int trailingZeroes(int n) {
        int count=0;
        while(n!=0)
        {
            count+=n/5;
            n=n/5;
        }
        return count;

相关文章:

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