作者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)
1F:推 hsnu114444:感谢!因为我的程式根本就过不去...连一笔都没执行。 04/13 20:21
2F:→ hsnu114444:所以才会一直在意IO的问题,谢谢大大的指教! 04/13 20:22
3F:推 hsnu114444:可是您这个演算法好像算的不是阶层,只是尾数。 04/14 01:37
4F:→ hsnu114444:我要算的是阶层的尾数,所以才想说用slice 04/14 01:38
5F:→ hsnu114444:把它有五的倍数通通丢出来。 04/14 01:38
6F:推 hsnu114444:喔喔我看错了 我少看了下面 04/14 01:43
7F:推 hsnu114444:谢谢你,上了重要的一课。 04/14 01:46