재귀를 사용하여 팩토리얼(factorial)을 구하는 함수를 구현해주세요. 팩토리얼이란 1에서부터 n까지의 정수를 모두 곱한것을 말합니다.
1! = 1
2! = 1 2
5! = 1 2 3 4 * 5
const factorial = n => {
//탈출조건
if(n === 0) return 1;
//실행문
return n * factorial(n - 1);
}
코드 줄이기 =>
const factorial = n => {
return n === 0 ? 1 : n * factorial(n-1);
}
재귀함수를 사용하는 경우
1. 비슷한 구조의 더 작은 문제로 나눌 수 있는 경우
2. 중첩된 반복문이 많거나 반복문의 중첩 횟수를 예측하기 어려운 경우
재귀함수 사용법
- 탈출조건과 실행문의 경우를 나누어 생각한다.
- while로 비교시 while안의 조건문이 탈출조건으로 쓰이고, 실행문이 실행문으로 쓰인다고 생각하면 쉽다.