階乘後的零

2022-06-24 11:42:12 字數 816 閱讀 4494

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

示例 1:

輸入: 3

輸出: 0

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

示例 2:

輸入: 5

輸出: 1

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

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

1. 求尾數0的個數,即10,10只能由2*5組成,所以求因子中 2 和 5的個數即可

2. 但是明顯因子中2的數量》5的數量,所以只需要求因子中5的個數即可

例如:25!= 1*2*3*4*(1*5)*........*(2*5).......*(3*5)........*(4*5).....*(5*5)

可知

每隔5位就有1個5

每隔25位會有2個5

每隔125位會有3個5

.......以此類推

結論:n!中因子5的個數 = n/5 + n/25 + n/125 .......

tip:但是,分母可能會出現越界的情況!

改善:例如計算n/25的時候 每次都把n/5之後更新回n,這樣n/25更新完n後就變為了n/5 其他的依次類推

public int trailingzeroes(int n) 

return count;

}

階乘後的零

示例 1 輸入 3 輸出 0 解釋 3 6,尾數中沒有零。示例 2 輸入 5 輸出 1 解釋 5 120,尾數中有 1 個零。說明 你演算法的時間複雜度應為 o log n 2.1 思路分析 當1個數乘以10的時候,它的末尾會多乙個零,而10只可分解為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當中...