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

·2022년 10월 24일
2

Algorithm Study

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

입력 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

<실행 결과>

post-custom-banner

0개의 댓글