階乘後的零

2021-10-19 07:04:20 字數 693 閱讀 9739

示例 1:

輸入: 3

輸出: 0

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

示例 2:

輸入: 5

輸出: 1

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

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

2.1  思路分析

當1個數乘以10的時候,它的末尾會多乙個零,而10只可分解為2*5,因此要確定乙個整數的末尾有多少零,需要知道有多少對2*5;

規律如下,對於乙個整數的階乘,對於因子2,每兩個數出現一次,對於因子5,每五個數出現一次,因此只需要統計5出現的次數,就必然有2與其配對;

題目要求更低的複雜度,單靠步驟2無法實現,因此另一條規律是,對於因子5,出現的次數為 n/5,對於因子25,每25個數出現一次,即每25個數出現兩個5,即要加上n/25個5,依次類推,可以得到5出現的次數公式為 n / 5 + n / 25 + n / 125+...,為了防止分母溢位,我們每次更新n的值;

2.2  **實現

class solution 

return count;

}}

2.3  複雜度分析

階乘後的零

給定乙個整數 n,返回 n 結果尾數中零的數量。示例 1 輸入 3 輸出 0 解釋 3 6,尾數中沒有零。示例 2 輸入 5 輸出 1 解釋 5 120,尾數中有 1 個零.說明 你演算法的時間複雜度應為 o log n 1.求尾數0的個數,即10,10只能由2 5組成,所以求因子中 2 和 5的個...

LeetCode 階乘後的零

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

39 階乘後的零

題目 初階 123 100 求結果末尾有多少個零。高階 n的階乘末尾有多少個0 分析 一般類似的題目都會蘊含某種規律或簡便方法的階乘末尾乙個零表示乙個進製,則相當於乘以10而10 是由25所得,在1 100當中,可以產生10的有 0 2 4 5 6 8 結尾的數字,顯然2是確定的,因為4 6 8當中...