문제
B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오.
10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 사용한다.
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35
입력
첫째 줄에 N과 B가 주어진다. (2 ≤ B ≤ 36)
B진법 수 N을 10진법으로 바꾸면, 항상 10억보다 작거나 같다.
출력
첫째 줄에 B진법 수 N을 10진법으로 출력한다.
예제 입력 1
ZZZZZ 36
예제 출력 1
60466175
[ 문제 분석 ]
진법이란 수를 셀 때 자릿수가 올라가는 단위를 기준으로 하는 셈법이다.
어떤 수를 n진법을 변환하려면 그 수를 0이 될 때까지 n으로 나누고, 그 나머지를 거꾸로 읽어 올라가면 된다.
[ 코드 ]
[ 문제 풀이 ]
변환할 수 n과, n를 b진법으로 변환할 b를 입력받는다.
변환할 수 n의 길이만큼 반복문을 실행하는데, 해당 char가 '0'~'9'인 경우와 'A'~'Z'인 경우로 나눠서 생각한다.
pow함수는 제곱을 나타내는 것으로, pow(a, b)는 a의 b제곱을 의미한다. 이 함수를 쓰기 위해서는 #include <cmath>를 호출해야 한다.
'Koala - 5기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/python] 10773번 제로 (0) | 2022.02.07 |
---|---|
[백준/python] 6996번 애너그램 (0) | 2022.02.07 |
[백준/python] 11005번 진법 변환 2 (0) | 2022.02.07 |
<4주차> [BOJ / C++] 11880번 - 개미 (0) | 2022.02.06 |
[백준/python] 10825: 국영수 (0) | 2022.02.06 |