Problem
https://www.acmicpc.net/problem/11005
11005번: 진법 변환 2
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
10진법 수 N이 주어질 때, 이 수를 B진법으로 바꿔서 출력하시오. (A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35)
Solution
#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int main(){
int N; // 10진법 수
int B; // B진법
cin >> N >> B;
int tmp;
int num1 = N; // 몫
int num2; // 나머지
string result; // 반환값
while(num1>0){
tmp = num1/B;
num2 = num1%B; // 불필요하게 num1이 1번 더 나눠지는 것 방지
num1 = tmp;
if(num2>=0 && num2<=9){
result += (num2+'0');
} else {
result += (num2-10+'A');
}
}
for(int i=result.length()-1;i>=0;i--){
cout << result[i];
}
cout << endl;
return 0;
}
'코딩 테스트 > 백준 (C++, Python)' 카테고리의 다른 글
cpp) 백준 11650: 좌표 정렬하기 (0) | 2023.06.08 |
---|---|
cpp) 백준 11050: 이항 계수 1 (0) | 2023.06.08 |
cpp) 백준 1929: 소수 구하기 (1) | 2023.06.08 |
cpp) 백준 2745: 진법 변환 (0) | 2023.06.07 |
cpp) 백준 1157: 단어 공부 (0) | 2023.06.07 |