컴퓨터공학 💻 도서관📚
재귀함수 (C언어) 본문
재귀함수 : 자기 자신을 호출하는 함수
재귀함수의 구조
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