cpp) 백준 2745: 진법 변환
본문 바로가기
코딩 테스트/백준 (C++, Python)

cpp) 백준 2745: 진법 변환

by NEWSUN* 2023. 6. 7.

Problem

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

 

2745번: 진법 변환

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

www.acmicpc.net

B진법 수 N이 주어진다. N을 10진법으로 바꾸시오.
 
 

Solution

#include<iostream>
#include<string>
#include<cmath>

using namespace std;

int main(){

    string N;
    int B;
    int result=0;
    int cnt=0;

    cin >> N >> B;

    for(int i=N.length()-1;i>=0;i--){
        if(N[i]>='0' && N[i]<='9'){
            result = result + pow(B,cnt)*(N[i]-'0'); // 0-9
        } else{
            result = result + pow(B,cnt)*(N[i]-'A'+10); // 10-35
        }
        cnt++;
    }

    cout << result << endl;

    return 0;
}