재귀 알고리즘, 재귀 함수 기초

라용·2022년 9월 23일
0

위코드 - 스터디로그

목록 보기
55/100
post-custom-banner

위코드 코드카타를 정리한 내용입니다.

재귀(recursion)란, 자신을 정의할 때 자기 자신을 호출하는 방법을 뜻합니다. 예를 들면 아래와 같습니다.

const countdown = n => {
	countdown(n-1); // 이렇게 안에서 해당 함수를 다시 호출
}

countdown(10);

위와 같이 작성할 경우 10에서 시작해서 무한으로 마이너스 값이 내려갑니다. 그래서 재귀함수는 언제 멈출 것인지 조건을 주어야 합니다. 0이 되면 종료하도록 코드를 추가하며 아래와 같습니다.

const countdown = n => {
	if (n === 0) return;
	countdown(n-1); 
}

countdown(10);

문제

재귀를 사용해 팩토리얼(factorial)을 구하는 함수를 구현합니다. 팩토리얼은 1부터 n까지의 정수를 모두 곱한 값입니다.

1! = 1
2! = 1 * 2
5! = 1 * 2 * 3 * 4 * 5

풀이

n의 값이 1보다 작아질 때까지 n-1 인자를 재귀함수로 넣어서 곱합니다.

const factorial = n => {
	if (n < 1) return 1;  // n ===1 의 조건을 넣으면 한가지 조건을 통과 못함..
	return n * factorial(n-1)
}
profile
Today I Learned
post-custom-banner

0개의 댓글