觀察-LeetCode172-階乘後的零
阿新 • • 發佈:2018-12-04
題目
給定一個整數 n,返回 n! 結果尾數中零的數量。
示例 1:
輸入: 3
輸出: 0
解釋: 3! = 6, 尾數中沒有零。
示例 2:
輸入: 5
輸出: 1
解釋: 5! = 120, 尾數中有 1 個零.
說明: 你演算法的時間複雜度應為 O(log n) 。
思路
要想產生0必須2*5。2的個數足夠,只需求出式子中有幾個5即可。
127!=...x5...x10...x15...x20...x25...x30...x35...x40...x45...x50...x55...x60...x65...x70...x75...x80...x85...x90...x95...x100...x105...x110...x115...x120...x125
觀察可以發現,127/5=25...2 。但是25=5*5、50=5*5*2、75=5*5*3、100=5*5*4、125=5*5*5中又可以分解出5。25/5=5...0。5/5=1...0。
程式碼
class Solution { public int trailingZeroes(int n) { if(n<5){ return 0; } int res=0; res+=n/5; n=n/5; res+=trailingZeroes(n); return res; } }