관리 메뉴

풀이 보관함

[C++] 진수 변경: 숫자N을 A진법으로 바꿔보기 본문

카테고리 없음

[C++] 진수 변경: 숫자N을 A진법으로 바꿔보기

viin 2022. 9. 22. 16:12

숫자 N을 A진수로 바꾸는 방법을 알아보겠습니다. 

 

이 글은 머리로 진수를 바꿀 수 있는 사람이 보시기에 좋습니다. 

생각을 코드로 어떻게 짜지? 고민하시는 분들이 보세요. 

 

방법은 N%A를 하는 것입니다. 나머지를 구하면 N = N/A 도 해줍시다.

 

 

 

4를 2진수로 변경하면 100 입니다. 

 

4%2 = 0 -> 4/2 = 2

2%2 = 0 -> 2/2 = 1

1%2 = 1  -> 1/2=0 (0.5지만 다운 캐스팅됨)

 

0, 0, 1로 나온 값을 거꾸로 보면 100 입니다. 

 

 

#include <iostream>
#include <string>

std::string dec(int N, int A)
{
    std::string result;
    while(N)
    {
        result+=std::to_string(N%A);
        N/=A;
    }
    std::reverse(result.begin(), result.end());
    return result;
}

int main()
{
    int N, A;
    std::cin >> N >> A;
    std::cout << dec(N, A);
    
    return 0;
}