[Python] (문제풀이) 재귀를 이용한 팩토리얼

이태권 (Taekwon Lee)·2022년 6월 24일
0
post-thumbnail

"골콩드" (르네 마그리트, 1953)

(Code Kata 3-5) 재귀

📝 개념

재귀(recursion)란, 무엇을 정의할 때 자기 자신을 다시 참조하는 것을 뜻한다.

  • 사람의 입장에서 아주 직관적이고 이해하기 비교적 쉬워서 경우가 많지만, 일반적인 상황에서는 잘 사용하지 않는다.
  1. 재귀는 예외 조건에 도달할 때까지 호출의 호출을 반복하여 쌓인 다음
  2. 가장 마지막에 호출한 것을 반환하기 시작하여, 가장 처음에 호출한 것을 최종 반환한다.
    자세한 것은 이 사이트로 들어가 factorial 그림을 보기를 바란다.
  3. 따라서, 스택(stack)의 구조를 갖고 있다.

❓ 문제

재귀를 사용하여 팩토리얼(factorial)을 구하는 함수를 구현해주세요.
팩토리얼이란 1에서부터 n까지의 정수를 모두 곱한 것을 말합니다.

1! = 1
2! = 1 * 2
5! = 1 * 2 * 3 * 4 * 5

❗️ 답안

재귀를 활용한 팩토리얼

  • 1 이하의 팩토리얼은 1을 반환하도록 하는 예외 조건을 두었다.
  • 나머지는 자기 자신보다 작은 재귀 함수를 호출한다.
def factorial(n):
  if n <= 1:
    return 1
  else:
    return n * factorial(n - 1)

재귀를 사용하지 않은 팩토리얼

def factorial(n):
    num = 1
    for i in range(1, n + 1):
        num *= i 
    return num

🔖 참고 자료

profile
(Backend Dev.) One step at a time

0개의 댓글