재귀 함수란?

재귀 함수는 함수가 자기 자신을 호출하는 것을 의미합니다. 이는 함수가 자신의 문제를 해결하고 더 이상 해결 할 수 없을 때까지 자신을 호출하면서 문제를 해결하는 방식입니다.

재귀 함수의 예제 코드

def factorial(n):
    if n <= 1:
        return 1
    else:
        return n * factorial(n-1)

위 코드는 팩토리얼을 구하는 재귀 함수입니다.

팩토리얼은 자신보다 작은 숫자들의 곱입니다.

0! = 1이며, 양의 정수 n에 대해서 n! = n * (n-1)!입니다.

위 코드에서는 n이 1 이하일 때 1을 반환하고, 그 외의 경우에는 n과 factorial(n-1)을 곱해서 반환합니다.

재귀 함수의 실행

factorial(5)를 실행하면 다음과 같은 순서로 함수가 실행됩니다.

  1. factorial(5)를 호출합니다.
  2. factorial(4)를 호출합니다.
  3. factorial(3)을 호출합니다.
  4. factorial(2)를 호출합니다.
  5. factorial(1)을 호출합니다.
  6. factorial(1)이 1을 반환합니다.