그냥 게임개발자
재귀함수 본문
재귀함수란 3가지 특징을 가집니다.
- 재귀함수(Recursion)는 정의 단계에서 자신을 재참조하는 함수
- 전달되는 상태인 매개변수가 달라질 뿐 똑같은 일을 하는 함수
- 큰 문제를 작은 부분문제로 나누어서 풀 때 사용합니다.
예를 들어 팩토리얼(factorial)이 있습니다.
팩토리얼(factorial)은 1부터 해당 항까지 곱하는 함수입니다.
이를 재귀함수로 구현하면 다음과 같습니다.
근데 이거 고등학교인가 중학교인가 그 때 배웠던 것 같은데요.
코드로 활용해봅시다.
#include <iostream>
using namespace std;
// 재귀함수
int FactRec(int n)
{
if (n == 1 || n == 0) return 1;
return n * fact_rec(n - 1);
}
int FactFor(int n)
{
int ret = 1;
for (int i = 1; i <= n; ++i)
{
ret *= i;
}
return ret;
}
int main()
{
int number = 5;
cout << FactFor(number) << '\n';
cout << FactRec(number) << '\n';
return 0;
}
끄으틍
'내 개인적인 공부 > 자료구조' 카테고리의 다른 글
BigOTest (0) | 2024.04.15 |
---|---|
Array요소 수정 방법들 (0) | 2024.04.15 |
값에 의한 호출, 참조에 의한 호출 (0) | 2024.04.14 |
primitive 타입, reference 타입 (0) | 2024.04.14 |
자료구조 시간 복잡도 (0) | 2024.04.14 |