cpp) 백준 11005: 진법 변환 2
본문 바로가기
코딩 테스트/백준 (C++, Python)

cpp) 백준 11005: 진법 변환 2

by NEWSUN* 2023. 6. 8.

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;
}