Re: [閒聊] 每日leetcode
我獨自leetcode
172. Factorial Trailing Zeros
給一個整數n,請回傳n!的trailing zeros的數目
思路 :
這題就純粹的數學題目
你要求一個整數後面有幾個0,就是去把它進行質因數分解
去看有幾個5*2就有幾個0
而這題的整數是n!,質因數分解後2的數目一定會比5多
所以你去求有幾個5就好
問題變成n!質因數分解後有幾個5?
稍微想一下就可以知道
只要是5的倍數就有1個5、25的倍數有2個5,以此類推5^x會有x個5
n/5->有幾個5的倍數、n/25->有幾個25的倍數.....
就這樣一直到n=0,就可以求出答案了
C Code
int trailingZeroes(int n) {
int ans=0;
while(n!=0){
ans+=n/5;
n/=5;
}
return ans;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.7.29 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1710588707.A.8DA.html
→
03/16 19:32,
1年前
, 1F
03/16 19:32, 1F
推
03/16 19:32,
1年前
, 2F
03/16 19:32, 2F
推
03/16 19:35,
1年前
, 3F
03/16 19:35, 3F
推
03/16 19:35,
1年前
, 4F
03/16 19:35, 4F
討論串 (同標題文章)
完整討論串 (本文為第 49 之 1548 篇):