LeetCode 階乘後的零

2021-09-11 08:40:50 字數 803 閱讀 8908

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

示例 1:

輸入: 3

輸出: 0

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

示例 2:

輸入: 5

輸出: 1

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

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

思路分析:不難發現,只用出現2的倍數、5的倍數相乘才會在末尾出現零。並且2的倍數出現的次數肯定多餘5的倍數出現的次數。所以這道題就轉換為1~n中,5出現的次數(需要注意5的次方)。

方法一:計算5出現的次數,被5整除的數計算1次,被25整除的數計算2次,被125整除的數計算3次…

但是在計算被5整除的數時被25整除的數(5t)已經被計算了一次,所以再計算被25整除的數只要計算一次。

在計算被5、25整除的數中,被125整除的數各被計算了一次,所以再計算被125整除的數中只要計算一次。

方法二:將上面的方法轉化為遞推。

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 本題如果暴力乘計數的話必然會爆範圍,因為數字增長的速度太快了 其實乘法裡面,末...

LeetCode 階乘後的零

q 給定乙個整數 n,返回 n 結果尾數中零的數量。示例 1 輸入 3 輸出 0 解釋 3 6,尾數中沒有零。示例 2 輸入 5 輸出 1 解釋 5 120,尾數中有 1 個零.說明 你演算法的時間複雜度應為 o log n a 如果按照全部階乘了再去算0的個數,計算量太大。可以發現,如果想多乙個0...