作者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
→ Dannvix:這種題目直接做factorial太慢了,想想數學解 04/10 13:06
→ Dannvix:就算用C直接做大數factorial也還是會Time Limit Exceed吧 04/10 13:06
→ Dannvix:hint: 質因數分解 04/10 13:08
推 carlcarl:一看就覺得不能用正常的方式來算0.0a 要用點小技巧 04/10 13:51
→ sbrhsieh:計算的東西不同,但或許對你有些幫助 04/10 14:29