백준/실버
[백준 11576번] Base Conversion (C++)
게임개발기원
2025. 4. 12. 01:43
문제링크 : https://www.acmicpc.net/problem/11576
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int A, B, m;
int arr[26];
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cin >> A >> B >> m;
for(int i=0; i<m; i++) cin >> arr[i];
int idx = 0, tmp = 0;
for(int i=m-1; i>=0; i--)
{
tmp += arr[idx]*pow(A, i);
idx++;
}
vector<int>v;
while(tmp >= B)
{
v.push_back(tmp%B); //몫 넣기
tmp /=B;
if(tmp < B) v.push_back(tmp); //나머지 넣기
}
for(int i = v.size()-1; i>=0; i--) cout << v[i] << " ";
return 0;
}
처음 A진법을 10진수로 변환시키고, 다시 입력받은 B진법으로 계산하여 출력해주면 된다.