백준

첫째 줄에 16진수 수가 주어진다. 이 수의 최대 길이는 6글자이다. 16진수 수는 0~9와 A~F로 이루어져 있고, A~F는 10~15를 뜻한다. 또, 이 수는 음이 아닌 정수이다.

출력

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


#include<cmath>

using namespace std;
int hexTodec(int n){
    int dec=0;
    if(n >= 'A'){
        return n % (int)'A' + 10;
    } else {
        return n % (int)'0';
    }
}

int main(){
    string input;
    int sum = 0;
    
    cin >> input;
    int length = input.length();
    for(int i=0;i<input.length();i++){
        int hexInt = hexTodec((char)input[i]);       
        sum += hexInt*pow(16, --length);
    }
    
    cout << sum;
}


이렇게 해서 자릿수하나씩곱해서 풀었는데


그냥 출력에 16진수 변환 포맷있었네...ㄷ