PS/BOJ
[알고리즘] 백준 11005번: 진법 변환 2 (C++)
도비(Doby)
2021. 11. 24. 10:16
https://www.acmicpc.net/problem/11005
11005번: 진법 변환 2
10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를
www.acmicpc.net
1. 주어진 N을 B로 나머지 연산 후 그 값을 'B진법'으로 바꾼다.
2. B진법으로 바꾼 값을 결과 문자열에 더한다.
3. 다음 값을 위해 N을 B로 나눠준다.
4. 1~3번 과정이 끝나면 결과 문자열을 뒤집는다.
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
char change(int value) {
if (value <= 9) {
return value + '0';
}
else {
return (value - 10) + 'A';
}
}
int main() {
int N, B;
cin >> N >> B;
string answer;
while (N / B > 0) {
answer += change(N % B);
N /= B;
}
answer += change(N % B);
reverse(answer.begin(), answer.end());
cout << answer;
return 0;
}