영벨롭 개발 일지

[백준 BOJ][C++]11576번 Base Conversion 풀이: 진법 변환 본문

알고리즘 문제 풀이/BOJ

[백준 BOJ][C++]11576번 Base Conversion 풀이: 진법 변환

영벨롭 2022. 3. 4. 21:12

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

 

11576번: Base Conversion

타임머신을 개발하는 정이는 오랜 노력 끝에 타임머신을 개발하는데 성공하였다. 미래가 궁금한 정이는 자신이 개발한 타임머신을 이용하여 500년 후의 세계로 여행을 떠나게 되었다. 500년 후의

www.acmicpc.net

 

 

 이 문제는 A 진법 수를 10진법으로 변환 후, 그 10진법 수를 다시 B 진법 수로 나타내면 됩니다. 

 

 

#include<iostream>
#include<vector>
#include<cmath>

using namespace std;

void decimal_to_b(int n, int b) {
	vector<int> ans;

	while (n > 0) {
		int temp = n % b;
		ans.push_back(temp);

		n /= b;
	}

	while (!ans.empty()) {
		cout << ans.back() << " ";
		ans.pop_back();
	}
}

int main(void) {

	int a, b, m;
	int num;

	cin >> a >> b;
	cin >> m;

	int decimal = 0;
	while (m > 0) {
		cin >> num;
		decimal += num * pow(a, m - 1);
		m--;
	}

	decimal_to_b(decimal, b);

	return 0;
}

 

반응형