[C++] 백준 8단계 - 2745번 문제 (진법 변환)자료구조 & 알고리즘/BOJ2023. 4. 22. 15:41
Table of Contents
문제설명
소스코드
#include <iostream>
#include <math.h>
#include <string>
using namespace std;
int main()
{
string N; int B; int result = 0;
string dchar = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
cin >> N >> B;
for (int i = 0; i < N.length(); ++i)
{
int d = dchar.find(N[i]);
result += d * pow(B, N.length() - 1 - i);
}
cout << result;
}
설명
- 1010(2진법)을 10(10진법)으로 변환하는 방법은 위와 같다.
- 따라서 B진법수 N을 10진법으로 변환하는 방법도 위와 유사하다.
- N의 i번째 자리에 있는 문자를 dchar에서 찾은 뒤 해당 인덱스를 d에 저장한다.
- d * B^(N 문자열의 길이 -1 -i)의 값을 result에 더한다.
- result를 출력한다.
pow(a,b)(a와 b는 int) : a를 b제곱한 값을 리턴
str.find ("문자열") : str에서 "문자열" 이 있는 인덱스를 리턴
비슷한 알고리즘(진법변환)
2023.01.23 - [자료구조 & 알고리즘] - [JAVA] n진수 변환 알고리즘
'자료구조 & 알고리즘 > BOJ' 카테고리의 다른 글
[C++] 백준 8단계 - 2720번 문제 (세탁소 사장 동혁) (0) | 2023.04.23 |
---|---|
[C++] 백준 8단계 - 11005번 문제 (진법 변환 2) (0) | 2023.04.23 |
[C++] 백준 - 4470번 문제 (줄 번호) (0) | 2023.04.21 |
[C++] 백준 7단계 - 2563번 문제 (색종이) (0) | 2023.04.20 |
[C++] 백준 7단계 - 10798번 문제 (세로읽기) (0) | 2023.04.18 |