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에서 함수 호출 위치만 바꿔 출력하였다.
-> 즉, 함수 호출 순서에 따라 실행 결과는 순서대로도 역순으로도 출력 가능하다.