더북(TheBook)

1.6.2 16진수 출력

문제 1-15 주어진 10진수를 16진수로 출력하세요.

해결책

기수(base) 값은 함수 매개 변수로 주어집니다.

(number)의 나머지를 계산해 숫자(digit)로 저장합니다.

수가 기수보다 크다면 수를 기수로 나눈 몫을 인자로 printInt() 함수를 재귀적으로 호출합니다.

수는 높은 자릿수에서 낮은 자릿수로 출력됩니다.

 

해결책 1-15

void printInt(unsigned int number, const int base)
{
    char* conversion = "0123456789ABCDEF";
    char digit = number % base;
    if (number /= base) {
        printInt(number, base);
    }
    printf("%c", conversion[digit]);
}

분석 시간 복잡도는 O(n)입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.