카테고리 없음
[백준 BOJ][C++]2745번 진법 변환 풀이
영벨롭
2022. 3. 4. 18:04
https://www.acmicpc.net/problem/2745
2745번: 진법 변환
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
B진법 수 N을 10진법으로 변환하는 문제입니다.
N의 자리 수를 n이라고 하면 변환하는 방법은 다음과 같습니다.
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int main(void) {
string N;
int B;
int ans = 0;
int len;
double p;
cin >> N >> B;
len = N.size() - 1;
for (int i = 0; i < N.size(); i++) {
char c = N[i];
int temp;
p = pow(B, len);
if (c >= 'A' && c <= 'Z') {
temp = c - 65 + 10;
}
else {
temp = c - 48;
}
ans += temp * p;
len--;
}
cout << ans;
return 0;
}
반응형