Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬(Python)에서 재귀 함수를 활용해 숫자의 거듭제곱 구하기

이 프로그램은 사용자로부터 밑(base)이 될 숫자와 지수(exponent)를 입력받습니다. 그런 다음 재귀 함수인 rpower()가 이 두 값을 인자로 받아 처리합니다. 이 함수는 숫자를 재귀적으로 반복해서 곱함으로써 최종 거듭제곱 결과를 반환합니다.

재귀의 동작 원리

재귀 함수는 자기 자신을 호출하는 방식으로 문제를 해결합니다. 여기서 rpower()의 로직은 다음과 같습니다.

  • 기저 조건(Base Case): 지수(idx)가 1이면 더 이상 곱할 필요가 없으므로 num을 그대로 반환합니다.
  • 재귀 조건(Recursive Case): 지수가 1보다 크면 num에 rpower(num, idx-1)의 결과를 곱해 반환하며, 지수가 1에 도달할 때까지 자기 자신을 계속 호출합니다.

예제 코드

def rpower(num,idx):
    if(idx==1):
        return(num)
    else:
        return(num*rpower(num,idx-1))
base=int(input("Enter number: "))
exp=int(input("Enter index: "))
rpow=rpower(base,exp)
print("{} raised to {}: {}".format(base,exp,rpow))

실행 결과

다음은 프로그램 실행 예시입니다.

Enter number: 10
Enter index: 3
10 raised to 3: 1000

위 실행 예시에서 볼 수 있듯이, 사용자가 밑으로 10을, 지수로 3을 입력하면 프로그램은 10 × 10 × 10 = 1000을 계산하여 출력합니다. 즉, 재귀 호출이 지수 횟수만큼 반복되면서 매번 num을 곱하는 구조입니다.

참고 사항

이 방식은 재귀의 기본 개념을 학습하기에 좋지만, 지수가 매우 클 경우 파이썬의 재귀 호출 깊이 제한(기본값 약 1000회)에 도달할 수 있습니다. 실무에서는 내장 연산자 **pow() 함수를 사용하는 것이 더 효율적입니다.