백준
백준 2745 - 진법 변환(C++)
공대생의 잡다한 사전
2023. 7. 2. 23:28
문제 링크입니다. https://www.acmicpc.net/problem/2745
2745번: 진법 변환
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
주어진 수를 10진수로 바꾸는 문제입니다.
ZZZZ는 36진수인데 이를 10진수로 바꾸는 과정은
Z * (36^(4-1)) + Z * (36^(3-1)) + Z * (36^(2-1)) + Z * (36^(1-1))가 됩니다.
다른 진법도 마찬가지로 바꾸는 방법은 같으니 이를 구현하면 됩니다.
자세한 것은 코드를 참고해주세요.
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <string>
#include <cstring>
#include <cmath>
#include <map>
#include <vector>
using namespace std;
string x;
int y;
int sum;
int main(){
cin.tie(0);
cout.tie(0);
cin >> x >> y;
for(int i = x.size() - 1; i >= 0; i--){
int num = 0;
if(x[i] >= 'A') num = 10 + (x[i] - 'A');
else num = x[i] - '0';
sum += (num * (int)pow(y, x.size() - i - 1));
}
cout << sum;
return 0;
}
질문 및 조언은 댓글을 남겨주세요