Problem
https://www.acmicpc.net/problem/11005
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 |