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

파이썬 재귀 함수로 두 숫자의 곱 구하기: 단계별 예제

재귀(recursion) 기법을 활용하면 두 숫자의 곱을 반복문 없이 계산할 수 있습니다. 이 방식은 간단한 조건문과 재귀 호출만으로 구현됩니다.

재귀란 큰 문제를 작은 단위로 쪼개어 각 단위의 결과를 계산한 뒤, 이를 결합하여 최종 해답을 얻는 방법입니다. 곱셈의 경우, 덧셈을 반복하는 방식으로 곱을 구할 수 있습니다. 예를 들어 3 × 4는 4를 3번 더한 것과 같습니다.

예제 코드

아래는 재귀를 사용해 두 숫자의 곱을 계산하는 파이썬 프로그램입니다.

def compute_product(val_1, val_2):
   if(val_1 < val_2):
      return compute_product(val_2, val_1)
   elif(val_2 != 0):
      return(val_1 + compute_product(val_1, val_2 - 1))
   else:
      return 0
val_1 = int(input("Enter the first number... "))
val_2 = int(input("Enter the second number... "))
print("The computed product is: ")
print(compute_product(val_1, val_2))

실행 결과

Enter the first number... 112
Enter the second number... 3
The computed product is:
336

코드 설명

  • compute_product 함수 정의: 두 개의 숫자 값을 매개변수로 받는 함수를 정의합니다.
  • 매개변수 교환: 첫 번째 값이 두 번째 값보다 작으면, 두 매개변수의 순서를 바꿔 함수를 다시 호출합니다. 이렇게 하면 재귀 호출 횟수를 줄여 성능을 높일 수 있습니다.
  • 재귀 호출: 두 번째 값이 0이 아니라면, 첫 번째 값에 두 번째 값에서 1을 뺀 결과를 재귀 호출하여 더합니다. 즉, 곱셈을 덧셈의 반복으로 처리합니다.
  • 종료 조건: 두 번째 값이 0이 되면 함수는 0을 반환하며 재귀가 종료됩니다.
  • 입력 받기: 함수 외부에서 사용자로부터 두 개의 숫자를 입력받습니다.
  • 결과 출력: 입력받은 두 값을 인자로 함수를 호출하고, 그 결과를 콘솔에 출력합니다.

동작 원리 이해하기

예를 들어 112 × 3을 계산하는 과정은 다음과 같이 진행됩니다.

  • compute_product(112, 3) → 112 + compute_product(112, 2)
  • compute_product(112, 2) → 112 + compute_product(112, 1)
  • compute_product(112, 1) → 112 + compute_product(112, 0)
  • compute_product(112, 0) → 0 (종료 조건)

따라서 최종 결과는 112 + 112 + 112 + 0 = 336이 됩니다.

주의 사항

파이썬에는 기본 재귀 깊이 제한(약 1000회)이 있으므로, 두 번째 숫자가 매우 큰 경우에는 이 방법 대신 반복문이나 곱셈 연산자(*)를 사용하는 것이 효율적입니다. 재귀는 알고리즘 학습과 문제 분해 능력을 기르는 데 유용한 기법입니다.