PS/CodeUp

CodeUp / Recursion(재귀) /1920번 / 2진수 변환 /C++

KimMinJun 2020. 9. 13. 11:53

문제 설명

어떤 1010진수 nn이 주어지면 22진수로 변환해서 출력하시오.

예)

10    ----->  1010

0    ----->  0

1    ----->  1

2    ----->  10

1024    ----->  10000000000

 

이 문제는 반복문을 이용하여 풀 수 없습니다.

금지 키워드 : for while goto

 

입력

1010진수 정수 nn이 입력된다.

(0<=n<=2,100,000,000)(0<=n<=2,100,000,000)

 

출력

22진수로 변환해서 출력한다.

 

입력 예시

7

 

출력 예시

111

 

#include <iostream>
using namespace std;

void binary(int k) {
    if(k != 0) {
        if(k % 2 == 0) { // k가 짝수일때
            binary(k / 2);
            cout << 0;
        }
    
        else if(k % 2 == 1) { // k가 홀수일때
            binary(k / 2);
            cout << 1;
        }
    }
}

int main() {
    int k;
    cin >> k;
    
    if(!k) cout << 0 << endl; // k가 0일경우 0만 출력
    else {
        binary(k);
        cout << endl;
    }
}