[부트캠프] 알고리즘 - 재귀함수(Recursion Function)

Claire·2024년 9월 2일

재귀함수(Recursion Function)

재귀의 설명 그대로 함수에서 자기 자신을 다시 호출해 작업을 수행하는 방식

즉, 재귀함수란 함수 안에 자신의 함수를 다시 호출하는 함수를 의미하며, 특정 분기까지 자기 자신을 계속해서 호출하는데, 주로 반복문을 구현할 때 사용한다.

int factorial(int n) {
	if (n == 0) {
		return 1;
	}
	else {
		return n * factorial(n - 1);
	} 
}


void main() {
	int number = 5;

	printf("5! = %d\n", factorial(number));
}

위 코드에서 처음에 n은 5일것이고 factorial(n-1)은 4인데, 여기서 다시 factorial( )함수 안으로 들어갈 것이고 그럼 n은 4가 되고, factorial(n-1)은 3이 되는데, 함수를 호출했으니 다시 factorial( )함수 안으로 들어가고 n이 3이 되고, factorial(n-1)은 2가 되고... 함수 호출이 반복되면서 결국 factorial(n-1)이 0이 되면 if(n == 0)의 조건이 참이되면서 재귀 호출이 종료된다.

즉, 처음에 5 4!이 리턴되고, 그 안에는 4 3!이 리턴되고 또 안에서는 3 * 2!이 리턴되는 함수가 계속 반복되는 것이고, 이게 바로 "재귀함수"이다.

이 함수는 추후 JS의 콜백함수에서 사용되는 원리가 된다..........😢😢

profile
SEO 최적화 마크업 개발자입니다.

0개의 댓글