經典應用題 階乘的尾巴有幾個零 Leetcode #172

閱讀時間約 2 分鐘
raw-image

這題的題目在這裡:

題目敘述

題目會給定我們一個n值,問我們n! 也就是n階乘 尾巴的零有多少個?

例如n=5 就是代表5! = 5x4x3x2x1=120 尾巴有一個零,回傳1


測試範例

Example 1:

Input: n = 3
Output: 0
Explanation: 3! = 6, no trailing zero.

Example 2:

Input: n = 5
Output: 1
Explanation: 5! = 120, one trailing zero.

Example 3:

Input: n = 0
Output: 0

約束條件

Constraints:

  • 0 <= n <= 104

 Follow up: Could you write a solution that works in logarithmic time complexity?


演算法:

除了平鋪直敘,直接相乘的模擬法之外;還有一個比較高效率O( log n) 的數學分析演算法。

尾巴的零來自於乘以10有幾個? 相當於 乘以2乘以五幾次?

n! = n * n-1 * ... * 1 = 2^i * 5^j * 其他質因數

觀察階乘的規律可以知道,5出現的次數一定小於等於2出現的次數,所以零的數目由5的次方數決定。

若階乘中有5出現一次,則尾巴有一個零。

若階乘中有5出現兩次,則尾巴有兩個零。

...

若階乘中有5出現k次,則尾巴有k個零。

所以我們只要把n拿去除以五,數數看5出現幾次,就知道n!尾巴有幾個零


程式碼

class Solution:
 def trailingZeroes(self, n: int) -> int:
  
  if n == 0:
   # Base case
   return 0
  
  else:
   # Inductive step
   return ( n//5 + self.trailingZeroes(n//5) )

複雜度分析

時間複雜度:

O( log n )
n 反覆除以5,最多耗費O( log n ) 步可以降階到終止條件 n == 0。

空間複雜度:

O( log n )
n 反覆除以5,最多耗費O( log n ) 步可以降階到終止條件 n == 0。

也是遞迴函數呼叫stack最大深度。


關鍵知識點

在於觀察幾個小範例,發現n! 尾巴零的個數 = 乘以10 幾次 = x 2 x 5 幾次

=> 5出現的次數一定小於等於2出現的次數,所以零的數目由5的次方數決定


Reference:

[1] Python/JS/Go/C++ solution with O( log N ) [w/ Hint] - Factorial Trailing Zeroes - LeetCode

81會員
417Content count
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
發表第一個留言支持創作者!
題目會給定一組已經規定好的介面interface,要求我們實作HashSet這種資料結構。也就是一般數學和程式語言中所說的"集合"。
題目會給我們兩條已經從小到大排序好的串列,要求我們依照從小到大的順序,合併這兩條串列。
題目會給定一組輸入陣列,裡面每個參數分別代表矩陣的寬和高。 如果有兩個矩陣的寬/高的比例是相同的,代表這兩個矩陣是等比例的。 要求我們計算,等比例的矩陣pair總共有多少個?
題目會給定我們一個輸入陣列,要求我們計算好配對的數目有多少個? 好配對的定義: 兩個數字相同,但是陣列索引一個在前,一個在後。 nums[i] == nums[j] and i < j. 這樣 (i, j) 就稱為一組好配對。
題目會給定我們一個陣列和參數k,要求我們將陣列右旋k次,然後輸出內容。 例如[1,2,3,4,5] 右旋 2次,輸出就是[4,5,1,2,3]
題目會給定我們一個陣列,要求我們找出裡面統計最多出現次數的偶數 。 假如有兩個偶數出現的次數一樣多,取最數字比較小的那個最為答案。
題目會給定一組已經規定好的介面interface,要求我們實作HashSet這種資料結構。也就是一般數學和程式語言中所說的"集合"。
題目會給我們兩條已經從小到大排序好的串列,要求我們依照從小到大的順序,合併這兩條串列。
題目會給定一組輸入陣列,裡面每個參數分別代表矩陣的寬和高。 如果有兩個矩陣的寬/高的比例是相同的,代表這兩個矩陣是等比例的。 要求我們計算,等比例的矩陣pair總共有多少個?
題目會給定我們一個輸入陣列,要求我們計算好配對的數目有多少個? 好配對的定義: 兩個數字相同,但是陣列索引一個在前,一個在後。 nums[i] == nums[j] and i < j. 這樣 (i, j) 就稱為一組好配對。
題目會給定我們一個陣列和參數k,要求我們將陣列右旋k次,然後輸出內容。 例如[1,2,3,4,5] 右旋 2次,輸出就是[4,5,1,2,3]
題目會給定我們一個陣列,要求我們找出裡面統計最多出現次數的偶數 。 假如有兩個偶數出現的次數一樣多,取最數字比較小的那個最為答案。
你可能也想看
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
歐美碩博士班學生,若能秒解且靈活運用ddraconian legislation、draconian policy、draconian penalty、draconian restriction、draconian sentence於高階寫作中,已達高階英文「思、辨、達」境界。
Thumbnail
企業管理策略能促進團隊合作協調,並激發其動力和創造力。本文提供重點精華及我的應用提案,幫助企業建立高效的團隊和實現持續性成功。包含:企業擴展階段、團隊目標制定、遊戲角色分配、組織圖建立、書面溝通之重要、統計值的應用、擬訂計畫的方法、協調團隊的技巧等,以及會議和財務計畫的重要性。
Thumbnail
亨利凱洛的《偉大攝影的基礎》系列總共有《偉大攝影的基礎》、《偉大攝影的基礎:風景》、《偉大攝影的基礎:人像》等3本書,共通點都是透過50位攝影大師的作品搭配文字說明講解概念,文字量少而淺白,可以說沒有什麼太過複雜而難解的專有名詞或內容,滿適合對於操作相機已經有基礎概念的人閱讀。
Thumbnail
撰寫日期:2022.09.02 作者:FAHAHA|翁順法 這篇文章介紹了SCQA這個表達框架,能夠幫助你更有效的組織內容,並在開頭吸引聽眾的興趣。 在使用框架時,應該避免被框架限制,也不要被框架的變形嚇到,掌握聽眾的狀態、意願、問題、需求,並視情況變化,才是真正聰明的表達者。
Thumbnail
Pump Room 餐廳落成於18世紀,一腳踏進歷史場景,我非常喜歡的《傲慢與偏見》作家珍‧奧斯汀也鍾情此地,她的兩部小說都出現過這棟古典華美的建築。
Thumbnail
〔薩滿課程-推薦書/重點筆記〕魔藥調製聖典與現代應用指南:神秘學大師親授薰香、精油、花草精 【Genius讀後感】 這是一個神奇的魔法世界,有許多讓人大開眼界的思維領域,裡面詳細的紀錄調配的過程與配方,藥草魔法是運用植物力量的一種特殊方法。這就是薰香、精油、沐浴鹽、藥水和花草精所涉及的範疇。 藥草魔
Thumbnail
我相信人們不分男女老少,都喜歡聽童話故事和民間傳說。在聽故事的過程中,我們將自己融入充滿奇想的情境中,並用奇蹟般的方式找到出路。而我們的先祖,述說故事的人,將他們的經驗化為口耳相傳的故事,讓深陷於相同困境的我們,能夠從故事中找到富有想像力的解決之道。
Thumbnail
其實我很好奇,當大家都在欣賞工讀生精湛的演出時 占了這麼好的位置的你,卻在拍攝? #工讀生很難過 #他需要鎂光燈 多羅滿賞鯨 電話:03-8333821  line@:@xvi3160b  http://www.turumoan.com.tw . #Hualien  #Taiwan  #wee
Thumbnail
產品經理的面試一般都會問哪些問題呢?綜合我自己的招聘經驗,我覺得產品經理面試基本上就是針對個人潛力、通用能力、專業能力三大方面評量,會想了解……
Thumbnail
  近期台灣政治的烽火總會掃到女性身上。似乎在評論女性的工作能力之前,還需要先檢視女性是否有完成家庭與社會責任,其他的個人成就不值一提。是時候看看上個世紀的女性主義文章,如何回應相關的質疑。
Thumbnail
1.加權指數與櫃買指數 週五的加權指數在非農就業數據開出來後,雖稍微低於預期,但指數仍向上噴出,在美股開盤後於21500形成一個爆量假突破後急轉直下,就一路收至最低。 台股方面走勢需觀察週一在斷頭潮出現後,週二或週三開始有無買單進場支撐,在沒有明確的反轉訊號形成前,小夥伴盡量不要貿然抄底,或是追空
Thumbnail
重點摘要: 1.9 月降息 2 碼、進一步暗示年內還有 50 bp 降息 2.SEP 上修失業率預期,但快速的降息速率將有助失業率觸頂 3.未來幾個月經濟數據將繼續轉弱,經濟復甦的時點或是 1Q25 季底附近
Thumbnail
近期的「貼文發佈流程 & 版型大更新」功能大家使用了嗎? 新版式整體視覺上「更加凸顯圖片」,為了搭配這次的更新,我們推出首次貼文策展 ❤️ 使用貼文功能並完成這次的指定任務,還有機會獲得富士即可拍,讓你的美好回憶都可以用即可拍珍藏!
Thumbnail
歐美碩博士班學生,若能秒解且靈活運用ddraconian legislation、draconian policy、draconian penalty、draconian restriction、draconian sentence於高階寫作中,已達高階英文「思、辨、達」境界。
Thumbnail
企業管理策略能促進團隊合作協調,並激發其動力和創造力。本文提供重點精華及我的應用提案,幫助企業建立高效的團隊和實現持續性成功。包含:企業擴展階段、團隊目標制定、遊戲角色分配、組織圖建立、書面溝通之重要、統計值的應用、擬訂計畫的方法、協調團隊的技巧等,以及會議和財務計畫的重要性。
Thumbnail
亨利凱洛的《偉大攝影的基礎》系列總共有《偉大攝影的基礎》、《偉大攝影的基礎:風景》、《偉大攝影的基礎:人像》等3本書,共通點都是透過50位攝影大師的作品搭配文字說明講解概念,文字量少而淺白,可以說沒有什麼太過複雜而難解的專有名詞或內容,滿適合對於操作相機已經有基礎概念的人閱讀。
Thumbnail
撰寫日期:2022.09.02 作者:FAHAHA|翁順法 這篇文章介紹了SCQA這個表達框架,能夠幫助你更有效的組織內容,並在開頭吸引聽眾的興趣。 在使用框架時,應該避免被框架限制,也不要被框架的變形嚇到,掌握聽眾的狀態、意願、問題、需求,並視情況變化,才是真正聰明的表達者。
Thumbnail
Pump Room 餐廳落成於18世紀,一腳踏進歷史場景,我非常喜歡的《傲慢與偏見》作家珍‧奧斯汀也鍾情此地,她的兩部小說都出現過這棟古典華美的建築。
Thumbnail
〔薩滿課程-推薦書/重點筆記〕魔藥調製聖典與現代應用指南:神秘學大師親授薰香、精油、花草精 【Genius讀後感】 這是一個神奇的魔法世界,有許多讓人大開眼界的思維領域,裡面詳細的紀錄調配的過程與配方,藥草魔法是運用植物力量的一種特殊方法。這就是薰香、精油、沐浴鹽、藥水和花草精所涉及的範疇。 藥草魔
Thumbnail
我相信人們不分男女老少,都喜歡聽童話故事和民間傳說。在聽故事的過程中,我們將自己融入充滿奇想的情境中,並用奇蹟般的方式找到出路。而我們的先祖,述說故事的人,將他們的經驗化為口耳相傳的故事,讓深陷於相同困境的我們,能夠從故事中找到富有想像力的解決之道。
Thumbnail
其實我很好奇,當大家都在欣賞工讀生精湛的演出時 占了這麼好的位置的你,卻在拍攝? #工讀生很難過 #他需要鎂光燈 多羅滿賞鯨 電話:03-8333821  line@:@xvi3160b  http://www.turumoan.com.tw . #Hualien  #Taiwan  #wee
Thumbnail
產品經理的面試一般都會問哪些問題呢?綜合我自己的招聘經驗,我覺得產品經理面試基本上就是針對個人潛力、通用能力、專業能力三大方面評量,會想了解……
Thumbnail
  近期台灣政治的烽火總會掃到女性身上。似乎在評論女性的工作能力之前,還需要先檢視女性是否有完成家庭與社會責任,其他的個人成就不值一提。是時候看看上個世紀的女性主義文章,如何回應相關的質疑。