본문 바로가기
프로그래밍언어/C 언어

[자료구조 및 알고리즘 입문] 재귀 알아보기

by khsnote22 2022. 12. 15.

어떤 사건이 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의될 때 재귀적이라고 합니다.

* 재귀 알고리즘은 병합 정렬과 퀵 정렬, 이진검색트리 등에응용합니다. 


순차곱셈 구하기

음이 아닌 정수 n의 순차곱셈 (n!)은 아래처럼 재귀적으로 정희할 수 있습니다.

1. 0! = 1

2. n > 0 이면 n! = n x (n - 1)!

// 순차곱셈의 결과를 재귀적으로 구하여 출력

#include <stdio.h>

// 정수 n의 순차곱셈값을 반환

int factorial(int n)
{
    if(n>0)
        return n * factorial(n-1);
    else
        return 1;
}

int main(void)
{
    int x;
    printf("정수를 입력하세요 : ");
    scanf("%d"m &x);
    printf("%d의 순차곱셈값은 %d입니다.\n", x, factorial(x));
    
    return 0;
}

직접 재귀와 간접 재귀

직접재귀는 자신과 같은 함수를 호출하고, 간접 재귀는 함수 x가 함수 y를 호출하고, 다시 y가 함수 x를 호출하는 구조로 이루어집니다.


https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=303672862 

 

Do it! 자료구조와 함께 배우는 알고리즘 입문 : C 언어 편

전편보다 풍부한 도해와 예제로 자료구조와 알고리즘의 개념을 더 쉽게 이해할 수 있도록 구성했다. 또한 다양한 C 언어 표준 라이브러리를 담아 실무에 도움되는 예제들을 추가했다. 자연스럽

www.aladin.co.kr