[함수] - 재귀 함수

Donggu(oo)·2022년 12월 14일
0

JavaScript

목록 보기
17/49
post-thumbnail

1. 재귀 함수


  • 함수가 자기 자신을 호출하는 것을 재귀 호출(Recursive Call)이라고 한다.
  • 재귀 함수(Recursive)는 자기 자신을 호출하는 행위, 즉 재귀 호출을 수행하는 함수를 말한다.

기본 문법

function recursive(input1, input2, ...) {
  // base case : 문제를 더 이상 쪼갤 수 없는 경우
  if (문제를 더 이상 쪼갤 수 없을 경우) {
    return 단순한 문제의 해답;
  }

  // recursive case : 그렇지 않은 경우
  return 더 작은 문제로 새롭게 정의된 문제
}
  • 수(num)을 입력 받아 1 부터 num까지의 합을 구하는 함수 예제이다.
  • num이 0이면 0을 리턴하고 함수가 종료된다.
  • num이 0이 아니면 0이 될 때 까지 num + sumTo(num - 1) 부분을 5번 반복한다.
function sumTo(num) {
  if (num <= 1) { // num이 1보다 작거나 같을 때
    return num; // num이 0이면 0을 리턴한다.
  } else {
    return num + sumTo(num - 1);
  }
};

// let num = 5
// 1. sumTo(5) = 5 + sumTo(4)
// 2. sumTo(4) = 5 + 4 + sumTo(3)
// 3. sumTo(3) = 5 + 4 + 3 + sumTo(2)
// 4. sumTo(2) = 5 + 4 + 3 + 2 + sumTo(1) === 1
// -> num이 0이 될 경우 0을 리턴하므로 재귀 함수에서 탈출한다.

0개의 댓글