티스토리 뷰

재귀 함수의 기본적인 이해

 

책에서는 재귀에 대해 이런 사진을 통해 설명하고 있다.

 

재귀 함수 호출시 복사본을 만들어져서 복사본이 실행되는 구조로 재귀함수의 호출을 설명한다.

 

재귀를 통해 팩토리얼 함수를 구현.

int Factorial(int n)
{
    if (n == 0)
        return 1;
    else
        return n * Factorial(n - 1);
}

int main(void)
{
	printf("2! = %d", Factorial(2));
    
    return 0;
}

 

 

하노이 타워의 구현.

void MoveHanoi(int num, char from, char by, char to)
{
    if (num == 1)
        printf("1번 원반을 %c에서 %c로 이동하였습니다.\n", from, to);
    else {
        MoveHanoi(num - 1, from, to, by);
        printf("%d번 원반이 %c에서 %c로 이동하였습니다.\n", num, from, to);
        MoveHanoi(num - 1, by, from, to);
    }
}

 

1. 작은 원반 n - 1개를 A에서 B로 이동

2. 큰 원반 1개를 A에서 C로 이동

3. 작은 원반 n - 1개를 B에서 C로 이동

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함