기본 문법
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을 리턴하므로 재귀 함수에서 탈출한다.