給定乙個整數 n,返回 n! 結果尾數中零的數量。
示例 1:
輸入: 3
輸出: 0
解釋: 3! = 6, 尾數中沒有零。
示例 2:
輸入: 5
輸出: 1
解釋: 5! = 120, 尾數中有 1 個零.
我們尋找階乘後結尾的零,肯定不能直接計算該階乘,容易導致溢位。
但是我們知道,末尾的0
一定是一對2
和5
貢獻的,而2
在階乘中作為因子的數量是遠遠多於5
的,這其實就要求我們取尋找5
的個數。因子5
會出現在
我們在計算時,只需要將給定的數值n
不斷的進行除5
操作,如果商大於5
,則表明給定數值範圍內存在5
的冪次方,因為冪次方可以分解成多個5
,所以不能將冪次方當作乙個因子進行計算,這時候我們繼續進行除法操作即可。例如:
25!
中,5
作為因子有幾個?
25/5 = 5
這是不對的,因為25本身也可以分解成為兩個5。因此找5的因子個數應該為:25/5 + 25/5/5 = 6
。同理,50!
中,25
和50
都是5^2
的倍數,同樣存在兩個因子5,因此他的因子個數為50/5 + 50/5/5 = 7
/**
* @param n
* @return
*/var
trailingzeroes
=function
(n)return res;
};
階乘後的零
示例 1 輸入 3 輸出 0 解釋 3 6,尾數中沒有零。示例 2 輸入 5 輸出 1 解釋 5 120,尾數中有 1 個零。說明 你演算法的時間複雜度應為 o log n 2.1 思路分析 當1個數乘以10的時候,它的末尾會多乙個零,而10只可分解為2 5,因此要確定乙個整數的末尾有多少零,需要知...
階乘後的零
給定乙個整數 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 首先暴力破解法就是直接把最終的結果求出來然後看末尾有幾個0,但是這樣做的時間複...