하랑이 코딩

컴퓨터공학/알고리즘

알고리즘 - 재귀호출(recursive call) c#

하랑이~! 2024. 6. 4. 15:56

재귀호출(recursive call)이란?


재귀호출(recursive call)이란 함수 내부에서 자기 자신을 반복적으로 호출하는 것을 의미한다. 반복 행위를 하는 함수를 재귀호출(recursive call)라고 한다. 일반적인 상황에서는 잘 사용하지 않지만 알고리즘을 구현할 대 매우 유용하다.

알고리즘에 따라서 반복문으로 구현한 코드보다 재귀호출(recursive call)로 구현한 코드가 더 직관적이고 이해하기 쉽다.

복잡한 문제를 빠르고 쉽게 해결할 수 있다.

 

꼭 알아야 하는 지식!

 

재귀호출(recursive call)

  • 재귀호출은 반드시 중지되어야 한다.
  • 재귀호출로 문제를 해결할 수 있는지 잘 고민해야 한다.

 

재귀호출(recursive call) 이론


아래 사진은 팩토리얼로 예시를 들어 만든 사진입니다.

현재 그림만 보면 이해가 안 될 수 있지만 다음 코드를 보시고 이 그림을 한번 더 보시면

이해가 잘 될 겁니다.

팩토리얼 예시 사진

 

재귀호출(recursive call) 코드


using System;

class Program
{
    static void Main(string[] args)
    {
        int number = 3;
        int result = Factorial(number);
        Console.WriteLine($"{number}! = {result}"); // 출력: 3! = 6
    }

    static int Factorial(int n)
    {
        // 기저 조건: n이 0이거나 1이면 1을 반환
        if (n <= 1)
        {
            return 1;
        }

        // 재귀 호출: n * Factorial(n-1)
        return n * Factorial(n - 1);
    }
}

 

728x90