演算法基礎 數字操作 階乘後的零

2021-10-09 02:19:04 字數 1006 閱讀 1148

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

示例 1:

輸入: 3

輸出: 0

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

示例 2:

輸入: 5

輸出: 1

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

我們尋找階乘後結尾的零,肯定不能直接計算該階乘,容易導致溢位。

但是我們知道,末尾的0一定是一對25貢獻的,而2在階乘中作為因子的數量是遠遠多於5的,這其實就要求我們取尋找5的個數。因子5會出現在

我們在計算時,只需要將給定的數值n不斷的進行除5操作,如果商大於5,則表明給定數值範圍內存在5的冪次方,因為冪次方可以分解成多個5,所以不能將冪次方當作乙個因子進行計算,這時候我們繼續進行除法操作即可。例如:

25!中,5作為因子有幾個?

25/5 = 5這是不對的,因為25本身也可以分解成為兩個5。因此找5的因子個數應該為:25/5 + 25/5/5 = 6。同理,50!中,2550都是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,但是這樣做的時間複...