728x90
재귀함수(Recursion Function)란
함수 안에 자신의 함수를 다시 호출하는 함수를 의미합니다.
이러한 재귀함수는 자신의 로직을 내부적으로 반복하다가, 일정한 조건이 만족되면 함수를 이탈하여 결과를 도출합니다.
재귀함수의 구현방법
예시1.
function countdown(n) {
if(n > 0) {
console.log(n);
return countdown(n-1);
}
}
countdown(5);
결과값
5
4
3
2
1
예시2. 팩토리얼
function factorial(num) {
if(num <= 1) {
return 1;
}
return num * factorial(num - 1);
}
const num = 5;
let result = factorial(num);
console.log(`${num}! = ${result}`);
결과값
5! = 120
회차 | 결과 |
1 | 5 * factorial(5-1) |
2 | 5 * 4 * factorial(4-1) |
3 | 5 * 4 * 3 * factorial(3-1) |
4 | 5 * 4 * 3 * 2 * factorial(2-1) |
5 | 5 * 4 * 3 * 2 * 1 |
팩토리얼은 양의 정수에 대해서 자신보다 작거나 같은 모든 양의 정수의 곱을 의미한다. (팩토리얼은 !로 표시한다)
예를 들어서 5!는 5*4*3*2*1의 결과인 120이 되는것이다.
위의 예시에서 factorial 함수는 파라미터 num을 1개 받고 있는데, 이때 들어온 num이 1보다 작거나 같은 값이면 바로 함수를 종료시킨다.
1보다 큰 값이라면 자신의 값과 자신보다 1 작은 값을 다시 factorial 함수의 파라미터로 넘겨준다.
예시3. 최대공약수 구하기
function fnGCD(num1, num2) {
retrun (num1 % num2) ? fnGCD(num2, num1 % num2) : num2;
}
fnGCD(21, 14);
결과값
7
728x90
'ETC > ✏️ Study' 카테고리의 다른 글
SPA와 MPA (0) | 2023.05.30 |
---|---|
하이퍼 로컬 (Hyper Local) 플랫폼이란? (0) | 2023.04.13 |
보일러 플레이트(Boiler Plate) 이해하기 (0) | 2023.03.22 |
npm install 할 때 --save 쓰는 이유 (0) | 2023.03.21 |
GNB, LNB? 웹사이트 용어 알아보기 (0) | 2023.03.16 |