Study/Algorithm

BOJ (C/C++) 11005번: 진법 변환 2

hwooo 2023. 4. 27. 15:56

https://www.acmicpc.net/problem/11005

 

11005번: 진법 변환 2

10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를

www.acmicpc.net


코드

#include <stdio.h>
#include <vector>
using namespace std;

int main() {
	int N, B;
	vector <int> V;

	scanf("%d %d", &N, &B);

	// 숫자를 36진수 형태로 나눠줌
	while (N != 0) {
		V.push_back(N%B);
		N /= B;
	}

	// 10을 넘어간다면 알파벳으로 바꿔서 출력
	for (int i = V.size() - 1; i >= 0; i--) {
		if (V[i] >= 10) printf("%c", V[i] - 10 + 'A');
		else printf("%d", V[i]);
	}

	return 0;
}