그냥 게임개발자

재귀함수 본문

내 개인적인 공부/자료구조

재귀함수

sudoju 2024. 4. 15. 22:25

재귀함수란 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