C C++/알고리즘풀이

[백준] 1550 16진수 [C]

치춘 2021. 9. 15. 23:09

16진수

문제

16진수 수를 입력받아서 10진수로 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 09와 AF로 이루어져 있고, AF는 1015를 뜻한다. 또, 이 수는 음이 아닌 정수이다.

출력

첫째 줄에 입력으로 주어진 16진수 수를 10진수로 변환해 출력한다.

풀이

#include <stdio.h>

int    main(void)
{
    char    str[7];
    int        index;
    int        num;

    index = -1;
    while (++index < 7)
        str[index] = 0;
    scanf("%s", str);
    index = -1;
    num = 0;
    while (str[++index])
    {
        num *= 16;
        if (str[index] <= '9' && str[index] >= '0')
            num += str[index] - '0';
        else
            num += str[index] - 'A' + 10;
    }
    printf("%d", num);
}

반성회

내일 일찍일어날수있겠지