Re: [討論] 提昇Python執行的速度

看板Python作者 (偶爾想擺爛一下)時間15年前 (2010/04/10 15:31), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/6 (看更多)
※ 引述《hsnu114444 (我只是QQ糖)》之銘言: : 我最近在玩OnlineJudge : 有一個網站叫做Sphere,他可以支援Python, : 但是有一個小問題,就是因為他還支援別種語言,所以Time limit基本上沒有設很寬。 : 我的題目是這樣: : 第一行輸入總共有幾個數字 : 接下來就讀入N行 : 輸出的結果是(input)!後面有幾個零 : 階層(factorial) 我在推文給的文章連結: http://www.javaworld.com.tw/jute/post/view?bid=5&id=20842&sty=1&tpg=2&age=-1 (http://ppt.cc/85qa) 主題是求 N! 從個位算來第一個不為零的數,和這一篇的要計算的目標不同, 但我想其中有一些概念可以用在這一篇的主題裡。 N! 中會直接貢獻 0 的有 10 的倍數,間接貢獻的有 2 與 5 的倍數,朝這個方向 去解,應該不會比求尾數難。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.173.135.32

04/10 22:44, , 1F
不停除 5 直到歸 0. 把過程商數累加應該就可以了.
04/10 22:44, 1F
的確,10 的倍數包含在 2, 5 倍數的 case 裡,而 1,2,...,N 中的 2 的倍數比 5 的倍數多,所以只要算 1,2,...,N 中所有 5 的 factor 個數即可知道 N! 的尾數 有幾個零。(如推文所述,N 不停除 5 直到歸 0. 把過程商數累加) ※ 編輯: sbrhsieh 來自: 218.173.135.32 (04/10 23:05)
文章代碼(AID): #1Bm2bQfk (Python)
文章代碼(AID): #1Bm2bQfk (Python)