2013-10-15 103 views
-2

我實現了exponentiation by squaring algorithm在Python重複平方(蟒蛇)

(x,n)=(input(),input()) 

    def exp_itr(x,n): 
     r=1 
     while n!=0: 
      if n%2==1: 
      r=r*x 
      n=n-1 
      x=x*x 
      n=n/2 
    return r 

而現在,我需要的遞歸算法。我該怎麼做?

+0

你能嘗試修復您的壓痕提到pseudocode的Python版本? (你可以點擊你的問題左下方的「編輯」編輯它) – Michael0x2a

+0

請更正縮進;) – astreal

+0

修復它:),我解決了第一個問題(這是現在的工作,如果n編號奇),現在我只需要遞歸算法 –

回答

1

下面是評論

def exp(x, n): 
    if n < 0: 
     return exp(1/x, -n) 
    elif n == 0: 
     return 1 
    elif n == 1: 
     return x 
    elif n % 2 == 0: 
     return exp(x * x, n/2) 
    else: 
     return x * exp(x * x, (n - 1)/2)