Leetcode:172. 阶乘后的零

Leetcode:172. 阶乘后的零

题目描述

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

示例 1:

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

示例 2:

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

思路

思路1:利用基本数学规则

每含一个5为约数的数可以提供一个0,含25为约数可以提供两个0,以此类推

代码

代码1

class Solution {
    public int trailingZeroes(int n) {
        if (n < 0){
            return -1;
        }
        int result = 0;
        while (n / 5 != 0){
            result += n / 5;
            n = n / 5;
        }
        return result;
    }
}

复杂度分析

思路1时间复杂度

$O(log(n))$

思路1空间复杂度

$O(1)$


文章作者: 小风雷
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小风雷 !
评论
 上一篇
Leetcode:166. 分数到小数 Leetcode:166. 分数到小数
Leetcode:166. 分数到小数题目描述给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数。 如果小数部分为循环小数,则将循环的部分括在括号内。 示例 1:输入: numera
2020-05-04
下一篇 
Leetcode:149. 直线上最多的点数 Leetcode:149. 直线上最多的点数
Leetcode: 149. 直线上最多的点数题目描述给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。 示例 1:输入: [[1,1],[2,2],[3,3]] 输出: 3 解释: ^ | |        o |
2020-05-03
  目录