Recursive Function

hanyoko·2023년 6월 19일
0

JAVASCRIPT

목록 보기
12/32
post-thumbnail

재귀함수 (Recursive Function)

재귀 호출을 이용해 간단하게 문제를 해결할 수 있는 특정 경우에 사용되며, 가장 많이 사용되는 예시로는 팩토리얼을 들 수 있다.

재귀 함수 (Recursive function) : 함수가 함수 내부에서 자기 자신을 호출하는 함수.

팩토리얼 함수

팩토리얼은 n이 자연수일 경우, 1에서 n까지의 모든 자연수의 곱을 나타낸다.
즉 3의 팩토리얼 3! 는 3 * 2 * 1 = 6 이 된다.

이를 재귀함수를 이용해 나타내면 아래와 같다.

function factorial(n) {
  if (n <= 1) return 1;
  return n * factorial(n - 1);
}

factorial(3);  // 6

이 경우 함수 내부의 재귀 호출은 n - 1 값으로 대치 되어 결국 3 2 1 의 팩토리얼 결과를 반환하게 된다.
특히 함수를 종료시키기 위해 n이 1 이하일 경우는 1을 반환하는 것으로 재귀함수를 멈추었다.

재귀함수는 몇몇 경우에 편리하게 사용할 수 있지만, 이해하기 어려운 측면도 있으므로 반복문을 사용하여 표현할 수 있다면 반복문을 사용하는 것이 더 좋은 경우가 많다.

위의 factorial 함수도 for 문을 이용해 간략하게 표현할 수 있습니다.

function factorial(n) {
  var result = 1;
  for (n; n > 1; n--) {
    result *= n
  }
  return result;
}

factorial(3);

0개의 댓글