본문 바로가기

Coding/백준 온라인 저지 (Baekjoon Online Judge)

백준 온라인 저지(Baekjoon Online Judge) - 2745 : 진법 변환

https://www.acmicpc.net/problem/2745

 

2745번: 진법 변환

B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 

www.acmicpc.net

 

#include <iostream>
#include <string>
#include <cmath>
using namespace std;

int main() {
    string n;
    int b;
    cin >> n >> b;
    
    int result = 0;
    int digit = n.length() - 1;
    
    for (int i = 0; i < n.length(); i++) {
        if (n[i] >= '0' && n[i] <= '9') {
            result += (n[i] - '0') * pow(b, digit);
        } else if (n[i] >= 'A' && n[i] <= 'Z') {
            result += (n[i] - 'A' + 10) * pow(b, digit);
        }
        digit--;
    }
    
    cout << result << endl;
    return 0;
}