leetcode之270階乘後的零Golang

2022-06-07 08:42:10 字數 715 閱讀 4016

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

示例 1:

輸入: 3

輸出: 0

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

示例 2:

輸入: 5

輸出: 1

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

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

最開始我使用的方法是一邊計算階乘,一邊計算零的個數的方法,但是這種方法毫無疑問的報錯了,我猜測就算不報錯也會超時吧。

報錯的原因很簡單,就是當數n大了以後,可能會超出int型別的表示範圍,可能會導致結果變為負數或者因溢位而造成的截斷誤差

所以後來採用了如下的方法:

我們可以想在什麼情況下乘積的末尾會是零,自然就是因數包含了類似於10這種自身帶有0的數和類似於5這種自身包含5的數

func trailingzeroes(n int) int 

count := 0

for i := 1; i <= n; i++ else

if number%5 != 0

}} }

return count

}

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 階乘後的零

給定乙個整數 n,返回 n 結果尾數中零的數量。示例 1 輸入 3 輸出 0 解釋 3 6,尾數中沒有零。示例 2 輸入 5 輸出 1 解釋 5 120,尾數中有 1 個零.說明 你演算法的時間複雜度應為 o log n 本題如果暴力乘計數的話必然會爆範圍,因為數字增長的速度太快了 其實乘法裡面,末...