본문으로 바로가기

#include <bits/stdc++.h>
using namespace std;
 
 
int main() 
{
	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	vector<int> v1;
	int n, b,r=0;
	cin >> n >> b;
	while (n != 0) {
		r = n % b;
		n /= b;
		v1.push_back(r);
	}
	for (int i = v1.size(); i > 0; i--) {
		if (v1[i - 1] >= 10 && b > 10) {
			char result = v1[i - 1]-10 + 'A';
			cout << result;
		}
		else cout << v1[i - 1];
	}
}
 

2진법 구하듯이 N진법 구한다 생각하고 코드를 작성하면된다.

10진법 이상일 경우는 문제에서 제시한것과 같이 10부터 A로 시작한다고 한다.

백터에 10진법 이상 10이상의 나머지 값이 저장되면, 10을 빼준후 알파벳을 출력해준다.