我試圖用Python 2.7.9作爲我的編程語言來解決SPOJ中的ZSUM問題,並設計了一個程序來做到這一點。由於代碼運行完美,但在裁判給予TLE,我想它不夠快。是否有可能優化下面的代碼來滿足裁判的要求,或者使用Python無法擊敗挑戰。Python中的模冪運算
鏈接的問題:http://www.spoj.com/problems/ZSUM/
def zsum(n,k):
a=2*pow(n-1,k,10000007)
b=pow(n,k,10000007)
c=2*pow(n-1,n-1,10000007)
d=pow(n,n,10000007)
zsum=(a+b+c+d)%10000007
print zsum
def main():
while True:
n,k=map(int,raw_input().split())
if n==k==0:
break
else:
zsum(n,k)
main()
http://en.wikipedia.org/wiki/Modular_exponentiation –
@AndrewJaffe我之前讀過這篇文章,並且在上面的代碼中使用了Python的內置模冪運算,但它仍然不夠快。 –