알고리즘 & 자료구조

[알고리즘]재귀

인디아나쥰이 2021. 1. 21. 14:18

재귀(Recursion)

함수가 본인 스스로를 호출해서 사용하는것

 

#include <stdio.h>

void draw(int h);

int main(void)
{
    int height = 3;

   // scanf("%d", &height);

    draw(height);
}

/*
void draw(int h)
{
    //높이가 h인 피라미드 그리기
    for(int i = 1; i <= h; i++)
    {
        for(int j = 1; j <= i; j++)
        {
            printf("#");
        }
        printf("\n");
    }
}
*/

//재귀 이용한 함수
void draw(int h)
{
    if(h == 0)
    {
        return;
    }

    draw(h-1);

    for(int i = 0; i < h; i++)
    {
        printf("#");
    }
    printf("\n");
}

 

재귀를 처음 접한다면 코드 소스만 보고는 혼란스러울수 있다.

순서에 따라 실행 된다는것을 생각하면서 

draw함수 안에 draw(h-1)을 작성해 정리해보면 어떤식으로 동작하는지 조금 더 쉽게 이해할 수 있다.

728x90
반응형