2 尾部的零

2021-08-25 17:18:20 字數 546 閱讀 6368

描述

設計乙個演算法,計算出n階乘中尾部零的個數。

樣例 11! = 39916800,因此應該返回 2

挑戰 o(logn)的時間複雜度

分析 假如你把1 × 2 ×3× 4 ×……×n中每乙個因數分解質因數,結果就像: 1 × 2 × 3 × (2 × 2) × 5 × (2 × 3) × 7 × (2 × 2 ×2) ×…… 10進製數結尾的每乙個0都表示有乙個因數10存在——任何進製都一樣,對於乙個m進製的數,讓結尾多乙個0就等價於乘以m。10可以分解為2 × 5——因此只有質數2和5相乘能產生0,別的任何兩個質數相乘都不能產生0,而且2,5相乘只產生乙個0。 所以,分解後的整個因數式中有多少對(2, 5),結果中就有多少個0,而分解的結果中,2的個數顯然是多於5的,因此,有多少個5,就有多少個(2, 5)對。 所以,討論1000的階乘結尾有幾個0的問題,就被轉換成了1到1000所有這些數的質因數分解式有多少個5的問題。

class

solution

return

sum;

}};

2 尾部的零

問題描述 設計乙個演算法,計算出n階乘中尾部零的個數 樣例11 39916800 因此應該返回 2.這個問題相信很多老鐵都已經遇到過了,很經典的乙個題目,還是那句老話,重要的是考慮的過程,是如何想到以5的個數來統計0的個數呢?又是如何想到除以25 除以125.的呢?這些事重點。首先n 中,哪些數字相...

2 尾部的零

問題描述 設計乙個演算法,計算出n階乘中尾部零的個數。樣例 11 3991680011 39916800 因此應該返回 2。解答 js實現 const trailingzeros function n return sum 分析 思考乙個數尾部的零是怎麼得來的,乘以10對吧,所以n的階乘尾部有多少零...

2 尾部的零

剛看到這道題時沒多考慮,就是利用階乘算出結果然後轉為字元陣列,判斷零的個數 剛發現判斷的地方寫錯了 但是如果輸入的值非常大,超過了取值範圍,就會報錯,而且這道題的思路不是這樣的 我是個沒有腦子的人!思路 乘積中出現0一定是2和5的乘積具體思路就不寫了,別人都寫好了 public class seco...