作者sbrhsieh (偶爾想擺爛一下)
看板Python
標題Re: [討論] 提昇Python執行的速度
時間Tue Apr 13 17:38:36 2010
※ 引述《hsnu114444 (我只是QQ糖)》之銘言:
: 我的問題搞了半天其實是在問數學解XD
:
: 但是我的數學解寫出來了,我自己測試的速度也超快,沒問題。
:
: 但是我出現了一個Runtime error的情況
:
: 根據我的測試發現
:
: 我的程式在剛執行的時候馬上輸入第一個數字是不會有反應的,但是有寫入變數。
:
: 比如說我在開始時快速輸入
:
: 10
: 11
:
: 那這樣我讀進去的會是11
: [略]
: → sbrhsieh:這個版本算快?你有沒有算過 100000000! ?! 04/13 00:01
: → sbrhsieh:別人跟你講做法,你似乎不看~~~ 04/13 00:02
: → hsnu114444:我有看,但這個已經比我之前快,現在的問題在input上 04/13 07:58
我覺得你搞錯重點了,這種測驗的重點在於你的演算法,不在於你的 IO 寫的
好不好。(或者說 IO 部份好搞,演算法部份不好搞)
好,回到 IO 來說,通常 online judge 是把 input 輸進 uploaded program
的 standard input(把 sample input file 重導到 stdin)。
寫這種程式直接從 stdin 讀數據會比較方便。
以下是個完整的程式(for Python 2.6-):
def tail_zeros(n):
a, m = 0, 0
while n > 0:
m = n / 5
a += m
n = m
return a
if __name__ == '__main__':
import sys
count = int(sys.stdin.next())
for x in xrange(count):
print tail_zeros(int(sys.stdin.next()))
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.131.114
※ 編輯: sbrhsieh 來自: 218.173.131.114 (04/13 18:14)
推 hsnu114444:感謝!因為我的程式根本就過不去...連一筆都沒執行。 04/13 20:21
→ hsnu114444:所以才會一直在意IO的問題,謝謝大大的指教! 04/13 20:22
推 hsnu114444:可是您這個演算法好像算的不是階層,只是尾數。 04/14 01:37
→ hsnu114444:我要算的是階層的尾數,所以才想說用slice 04/14 01:38
→ hsnu114444:把它有五的倍數通通丟出來。 04/14 01:38
推 hsnu114444:喔喔我看錯了 我少看了下面 04/14 01:43
推 hsnu114444:謝謝你,上了重要的一課。 04/14 01:46