입력 n에 대해서 n의 최대자리숫자 k를 n에서 뺀다.
n - k가 0이 될때까지의 최소 횟수를 구해서 출력하고, 전개도 작성하기
#include <iostream>
#include "Practice.h"
int MinusToZero(int _Num)
{
if (0 == (_Num / 10))
{
return _Num;
}
else
{
return MinusToZero(_Num / 10);
}
}
int Count(int _Num, int _Count)
{
if (_Num == 0)
{
return _Count;
}
return Count(_Num - MinusToZero(_Num), ++_Count);
}
int main(void)
{
std::cout << Count(13,0);
return 0;
}
// 전개도
CUZ(13, 0)
{
if(false)
CUZ(13 - [MTZ(13) = 1], 1)
{
if(false)
CUZ(12 - [MTZ(12) = 1], 2)
{
if(false)
CUZ(11 - [MTZ(11) = 1], 3)
{
if(false)
CUZ(10 - [MTZ(10) = 1], 4)
{
if(false)
CUZ(9 - [MTZ(9) = 9], 5)
if(true)
return 5;
}
}
}
}
}
// return 5
<실행 결과>