作者hsnu114444 (我只是QQ糖)
看板Python
标题[讨论] 提昇Python执行的速度
时间Sat Apr 10 12:25:29 2010
我最近在玩OnlineJudge
有一个网站叫做Sphere,他可以支援Python,
但是有一个小问题,就是因为他还支援别种语言,所以Time limit基本上没有设很宽。
我的题目是这样:
第一行输入总共有几个数字
接下来就读入N行
输出的结果是(input)!後面有几个零
阶层(factorial)
Sample Input:
6
3
60
100
1024
23456
8735373
Sample Output:
0
14
24
253
5861
2183837
我的code:
from math import factorial
number=input()
while number>0:
temp=str(factorial(int(raw_input())))[::-1]
if temp[0]!='0':
print '0'
else:
for i in range(len(temp)):
if temp[i+1]!='0':
print i+1
break
number-=1
其实我觉得这样的运算量已经很少了,但是好像很慢。
请问大家有什麽改进运算速度的方法,
或是通常都用哪些方式来减少程式码的运算量。
谢谢^^
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.119.205.11
1F:→ Dannvix:这种题目直接做factorial太慢了,想想数学解 04/10 13:06
2F:→ Dannvix:就算用C直接做大数factorial也还是会Time Limit Exceed吧 04/10 13:06
3F:→ Dannvix:hint: 质因数分解 04/10 13:08
4F:推 carlcarl:一看就觉得不能用正常的方式来算0.0a 要用点小技巧 04/10 13:51
5F:→ sbrhsieh:计算的东西不同,但或许对你有些帮助 04/10 14:29