재귀함수란
특정 조건이 true가 될 때까지 자기 자신을 반복 호출하는 함수 입니다.
재귀함수의 구조
// 조건이 충족될 때까지 스스로를 호출
static int recursive (인자){
// 종료 조건
if(true){
return 결과;
}
// 재귀 호출
else{
return recursive(작업된 인자)
}
}
재귀함수의 특징
- 자기 자신을 호출 : 조건이 true가 될때까지 자기 자신 호출합니다.
- 스택 메모리 사용 : 재귀함수는 호출될 때마다 스택에 새로운 프레임을 생성하며, 각 호출의 상태를 저장합니다. 이는 메모리를 더 많이 사용할 수 있으며, 스택 오버플로우(Stack OverFlow)를 발생 시킬 수 있습니다.
- 종료 조건 이 없으면 무한 반복됩니다
응용문제
하노이의 탑
피보나치 수열
꼬리 재귀 최적화 : 스택 메모리 사용의 단점을 보완하기 위해 나왔습니다. 재귀 함수를 컴퓨터가 재해석 해서 선형 알고리즘으로 만들어 실행시켜 주는 기능입니다. 따라서 사용하는 언어가 꼬리 재귀 최적화 기능을 지원하는지 확인하고 사용하는것이 좋습니다.
도움이 된 블로그
https://wania0.com/entry/C-%EC%9E%AC%EA%B7%80%ED%95%A8%EC%88%98
[C#] 재귀함수
이번 글에서는 재귀함수에 대해서 알아보겠습니다. 재귀 함수(Recursive Function)는 함수 내부에서 자기 자신을 호출하는 함수를 말합니다. 이는 함수가 자신의 문제를 더 작은 조각으로 분할하고,
wania0.com
'c# > 문법' 카테고리의 다른 글
C# 문법 - 자료형 변환 (캐스팅 , 문자에서 숫자 , 숫자에서 문자) (0) | 2024.11.26 |
---|---|
C# 문법 02 - 조건문(if) 과 반복문(While) (0) | 2024.11.26 |
c# 문법 01 - 자료형 과 실수 표현 방식(부동 소수점, 고정 소수점) (0) | 2024.11.22 |