172 階乘後的零

2021-10-05 19:27:18 字數 715 閱讀 7391

難度:簡單

題目描述

解題思路

產生0只可能是2*5,而且2的數量肯定比5多,所以只要找出所有乘數裡5因子的數量,就一定能找打同樣多的2和5配對形成0.所以問題可以簡化為找出5因子的數量。

可以產生5的數字有 5,10,15,20,25等

要注意的是每個25都會產生兩個5,125產生3個5,以此類推

按照這種思想樸素的翻譯成**就是下面這樣:

5的**有:小於n裡面5的倍數+特殊能產生多個5的數字

public

inttrailingzeroes

(int n)

re++;}

return re+p-1;

}

但是這種會超時,而且有點拗

大佬的寫法:詳細通俗的思路分析

思路也是累加每個5的倍數裡5的總數

172 階乘後的零

具體對於5 5 4 3 2 1 120,結果有乙個0,原因是存在一對2 5 10,對於10來說,只有2 5可以構成,所以需要在階乘中查詢有多少對2 5。在看乙個例子 11 11 10 9 8 7 6 5 4 3 2 1 11 2 5 9 4 2 7 3 2 1 5 2 2 3 1 2 1 對於含有2...

Leetcode 總結 172 階乘後的零

q 給定乙個整數 n,返回 n 結果尾數中零的數量。示例 1 輸入 3輸出 0解釋 3 6,尾數中沒有零。示例 2 輸入 5輸出 1解釋 5 120,尾數中有 1 個零.說明 你演算法的時間複雜度應為 o log n 首先,時間複雜度應為 o log n 就說明會有比較大的數字出現,先暴力求解試一下...

階乘後的零 LeetCode 172

10進製數結尾的每乙個0都表示有乙個因數10存在,任何進製都一樣,對於乙個m進製的數,讓結尾多乙個0就等價於乘以m。10可以分解為2 5 因此只有質數2和5相乘能產生0,別的任何兩個質數相乘都不能產生0,而且2,5相乘只產生乙個0。所以,分解後的整個因數式中有多少對 2,5 結果中就有多少個0,而分...