階乘後的零 題目 示例 1: 示例 2: 解題思路

題目

難度級別:簡單

給定一個整數 n,返回 n! 結果尾數中零的數量。

示例 1:

輸入: 3
輸出: 0
解釋: 3! = 6, 尾數中沒有零。

示例 2:

輸入: 5
輸出: 1
解釋: 5! = 120, 尾數中有 1 個零.
說明: 你算法的時間複雜度應爲 O(log n) 。

解題思路

0是由含2的倍數與5的倍數向乘得來,一個範圍內2的倍數多於5的倍數。這樣可以通過直接找5的倍數的數量,但是當碰到類似於25這個數時會有6個0,因爲25有2個5所以會和2個2結合,所以連續尋找5的因子數量即可

const trailingZeroes = function(n) {
    let re = 0;
    
    while (n >= 5) {
        n = parseInt(n / 5)
        re += n
    }

    return re
};

題目來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/factorial-trailing-zeroes

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章