재귀를 사용하여 함수를 구현
문제
재귀를 사용하여 팩토리얼(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안의 조건문이 탈출조건으로 쓰이고, 실행문이 실행문으로 쓰인다고 생각하면 쉽다.
Author And Source
이 문제에 관하여(재귀를 사용하여 함수를 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@suminllll/재귀를-사용하여-함수를-구현저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)