[백준] 11005번: 진법 변환 2

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

문제

알고리즘 접근 방법

10진수를 2진수로 변환하는 방법을 예로 들겠습니다.

변환하려는 값을 2로 나누어 몫과 나머지로
위와 같이 구하는 작업을 반복해서 몫이 0이 됐을 때
나머지를 역순으로 표시하면 끝입니다.
(만약, 나머지가 10 이상일 경우
A: 10, B: 11, ..., F: 15, ..., Y: 34, Z: 35)

풀이

#include <iostream>
#include <vector>

using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    
    int N, B;
    
    vector<int> v;
    
    cin >> N >> B;

    while((N/B)>0){
        v.push_back(N%B);
        N = N/B;
    }
    v.push_back(N%B);

    for(int i=v.size()-1; i>=0; i--){
        if (v[i] >= 10){
            cout << (char)(v[i]+55);
        }
        else
            cout << v[i];
    }
    cout << endl;
    return 0;
}

정리

역순!! 주의

💡 참고 포스팅

노력남자님 블로그

좋은 웹페이지 즐겨찾기