leetcode 階乘後的零

2021-10-03 16:24:11 字數 638 閱讀 9493

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

示例 1:

輸入: 3

輸出: 0

解釋: 3! = 6, 尾數中沒有零。

示例 2:

輸入: 5

輸出: 1

解釋: 5! = 120, 尾數中有 1 個零.

說明: 你演算法的時間複雜度應為 o(log n) 。

本題如果暴力乘計數的話必然會爆範圍,因為數字增長的速度太快了

其實乘法裡面,末尾有0意味著因子中肯定有10,而10的質因子,就是5 和 2,所以,我們要看末尾有沒有5,為啥直接看階乘中的數字的包含的5的質因子的總數就可以了?不用看2的麼?主要是5比2大,如果有5的質因數,那麼肯定比如包含2,比如5!:,仔細觀察,5的階乘中5的總數只有1個,但是2的總數有3個。所以我們直接看5的數量就可以了

那麼這裡你肯定發現了乙個問題,就是為啥在25的時候一次洗由4加到了6?其實究其原因就是,我們之前一直在找的數量,但是 也可做到後面有0。所以這裡就多出了乙個5的質因子的總數,因為25也是要分解成 5*5

這是個迴圈累加的過程,所以,如果出現了25,125, 625……就是要不斷的分解成5的質因數的總數。

class solution 

};

LeetCode 階乘後的零

一.題目描述 給定乙個整數 n,返回 n 結果尾數中零的數量。示例 1 輸入 3 輸出 0 解釋 3 6,尾數中沒有零。示例 2 輸入 5 輸出 1 解釋 5 120,尾數中有 1 個零.說明 你演算法的時間複雜度應為 o log n 二.解法 老實說,這道題,博主並沒有做出來,是抄的部落格大神的答...

LeetCode 階乘後的零

給定乙個整數 n,返回 n 結果尾數中零的數量。示例 1 輸入 3 輸出 0 解釋 3 6,尾數中沒有零。示例 2 輸入 5 輸出 1 解釋 5 120,尾數中有 1 個零.說明 你演算法的時間複雜度應為 o log n 思路分析 不難發現,只用出現2的倍數 5的倍數相乘才會在末尾出現零。並且2的倍...

LeetCode 階乘後的零

q 給定乙個整數 n,返回 n 結果尾數中零的數量。示例 1 輸入 3 輸出 0 解釋 3 6,尾數中沒有零。示例 2 輸入 5 輸出 1 解釋 5 120,尾數中有 1 個零.說明 你演算法的時間複雜度應為 o log n a 如果按照全部階乘了再去算0的個數,計算量太大。可以發現,如果想多乙個0...