컴퓨터공학 💻 도서관📚

재귀함수 (C언어) 본문

💯🌊자료구조&알고리즘/C언어

재귀함수 (C언어)

들판속초록풀 2025. 2. 12. 22:28

재귀함수 : 자기 자신을 호출하는 함수

 

 

재귀함수의 구조
1. 종료조건
2. return과 함께 자기 자신을 호출

 


재귀함수 예시 : 팩토리얼, 최대공약수 계산

#include <stdio.h>
#pragma warning(disable : 4996)

int facto(int num)
{
	if (num == 1)      // 종료조건
	{
		return 1;
	}
	else
	{
		return num += facto(num - 1);   // 재귀적 호출
	}
}

int main(void) {

	int N;

	scanf("%d", &N);

	int ans = facto(N);
	
	printf("%d", ans);
	
	return 0;
}


* 재귀함수의 장단점
장점
1. 코드의 가독성이 높아진다 (재귀적인 호출을 통해 코드를 간결하게 작성할 수 있다)
2. 일부 알고리즘에서는 반복문ㅇ르 사용하는 것보다 재귀함수를 사용하는 것이 더 직관적이다

단점
1. 재귀 함수는 함수를 호출할 때마다 스택에 새로운 프레임을 생성합니다. 따라서, 스택이 너무 깊어질 경우에는 스택 오버플로우가 발생할 수 있습니다.
2. 재귀 함수는 함수의 호출이 반복적으로 일어나기 때문에, 일반적으로 반복문을 사용하는 것보다 느립니다.

 

Comments