2013-10-15 2 views
-2

나는 반복 제곱 (파이썬)

(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 

파이썬

exponentiation by squaring algorithm을 구현 그리고 지금, 나는 재귀 알고리즘을 필요로한다. 내가 어떻게 해?

+0

당신이 당신의 들여 쓰기를 수정하려고 수에 언급 된 pseudocode의 파이썬 버전입니까? (편집하려면 질문의 왼쪽 하단에있는 "편집"을 클릭하십시오.) – Michael0x2a

+0

제발 들여 쓰기를 수정하십시오;) – astreal

+0

수정 : 첫 번째 문제를 해결합니다. 방금 재귀 알고리즘이 필요합니다. –

답변

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)