If you're seeing this message, it means we're having trouble loading external resources on our website.

웹 필터가 올바르게 작동하지 않으면 도메인 *. kastatic.org*.kasandbox.org이 차단되어 있는지 확인하세요.

주요 내용

재귀를 활용한 팩토리얼

양수 값인 n에 대해 n!를 작성해 봅시다. 이전에 했던 것처럼 n에서 시작해서 1이 될 때까지 계속 숫자를 곱하는 것입니다: n! = n(n1)21 그런데 (n1)!를 구하는 또 다른 방법으로 (n1)21이므로 n!=n(n1)!라고도 할 수 있습니다. 방금 어떻게 했죠? n!(n1)!의 곱으로 표현했습니다. (n1)!를 계산한 후 (n1)!의 결과와 n을 곱해서 n!을 계산할 수 있다는 것입니다. n의 팩토리얼 함수는 먼저 n1 팩토리얼 함수를 계산해서 구할 수 있는데, (n1)!를 계산하는 것은 n!을 계산하는 하위 문제에 해당합니다.
예를 들어 5!를 계산해 봅시다.
  • 5!54!로 계산할 수 있습니다.
  • 이제 4!을 계산하는 하위 문제를 해결하면 되는데, 이는 43!로 계산할 수 있습니다.
  • 다음은 3!을 계산하는 하위 문제를 해결하면 되는데, 이는 32!로 계산할 수 있습니다.
  • 다음은 21!2!을 계산합니다.
  • 다음은 1!을 계산해야 합니다. 1부터 1까지의 모든 정수의 곱은 1이기 때문에 1!1이라고 할 수 있습니다. 아니면 1!=10!이라는 공식을 적용해도 됩니다. 공식을 이용해서 풀어 봅시다.
  • 0!1이라고 정의했습니다.
  • 이제 1!=10!=1로 계산할 수 있습니다.
  • 1!=1이기 때문에, 2!=21!=2를 계산할 수 있습니다.
  • 2!=2이기 때문에, 3!=32!=6을 계산할 수 있습니다.
  • 3!=6이기 때문에, 4!=43!=24를 계산할 수 있습니다.
  • 4!=24이기 때문에, 5!=54!=120을 계산할 수 있습니다.
이제 모든 음이 아닌 정수 n에 대하여 n!을 계산하는 또 다른 방법을 알게 되었습니다.
  • n=0이면 n!=1이라고 합니다.
  • 그 외에는, n은 양수이어야 합니다. (n1)!를 계산하는 하위 문제를 해결하여 그 결과값과 n을 곱합니다. 그리고 n!을 이 곱의 결과값으로 선언합니다.
n!을 이런 식으로 계산하면 즉석에서 답을 구할 수 있는 첫 번째 조건을 탈출 조건이라고 부르고, 다른 값에 대한 같은 함수를 계산하는 두 번째 케이스를 재귀 조건이라고 합니다.

위 자료는 다트머스 대학교 컴퓨터공학과토마스 콜먼 교수와 데빈 발컴 교수, 그리고 칸아카데미 컴퓨팅 과정 팀이 공동으로 저술했으며, 본 내용물의 저작권은 CC-BY-NC-SA 라이선스를 적용합니다.