[알고리즘 스터디] 1주차_재귀함수_Ex005

·2022년 10월 22일
1

Algorithm Study

목록 보기
5/77
post-custom-banner

1부터 입력 받은 정수(~20)까지 출력하고, 전개도 작성하기

// 방법 1

#include <iostream>
#include "Practice.h"

void PrintNumberFromOne(int _StartNum, int _EndNum)
{
    if ((_EndNum - _StartNum) < 0 || _EndNum > 20)
    {
        return;
    }

    std::cout << _StartNum << " ";
    PrintNumberFromOne(_StartNum + 1, _EndNum);
}

int main(void)
{
    PrintNumberFromOne(1,5);

    return 0;
}
// 방법 1 전개도 

PNFO(1, 5)
{
    if (false)
    cout(1);
    PNFO(2, 5)
    {
        if (false)
        cout(2);
        PNFO(3, 5)
        {
            if (false)
            cout(3);
            PNFO(4, 5)
            {
                if (false)
                cout(4);
                PNFO(5, 5)
                {
                    if (true)
                    {
                        return;
                    }
                }
            }
        }
    }
}

<실행 결과>

(추가)

// 방법 2

#include <iostream>
#include "Practice.h"

void PrintNumberFromOne(int _EndNum)
{
    if (_EndNum > 20 || _EndNum <= 0)
    {
        return;
    }

    PrintNumberFromOne(_EndNum - 1);
    std::cout << _EndNum << " ";
}

int main(void)
{
    PrintNumberFromOne(5);

    return 0;
}
// 방법 2 전개도

PNFO(5)
{
    if (false)
    PNFO(4)
    {
        if (false)
        PNFO(3)
        {
            if (false)
            PNFO(2)
            {
                if (false)
                PNFO(1)
                {
                    if (true)
                    {
                        return;
                    }
                    cout(1);
                }
                cout(2);
            }
            cout(3);
        }
        cout(4);
    }
    cout(5);
}

방법 2는 Ex004에서 함수 호출 위치만 바꿔 출력하였다.

-> 즉, 함수 호출 순서에 따라 실행 결과는 순서대로도 역순으로도 출력 가능하다.

post-custom-banner

0개의 댓글