Published 2020. 12. 29. 01:56
 

2089번: -2진수

-2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 20, 21, 22, 23이 표현 되지만 -2진법에서는 (-2)0 = 1, (-2)1 = -2, (-2)2 = 4, (-2)3 = -8을 표현한다. 10진수로 1부터 표현하자면 1, 110, 111, 100, 101, 11010, 110

www.acmicpc.net

#include <cstdio>
void go(int n) {
    if(n==0) {
        return;
    }
    if (n%2 == 0) {
        go(-(n/2));
        printf("0");
    } else {
        if (n > 0) {
            go(-(n/2));
        } else {
            go((-n+1)/2);
        }
        printf("1");
    }
}
int main(){
    int n;
    scanf("%d\n",&n);
    if(n==0) {
        printf("0\n");
    } else {
        go(n);
    }
    return 0;
}

'Problem set' 카테고리의 다른 글

[백준] 2588: 곱셈  (0) 2020.12.29
[백준] 2557: 숫자의 개수  (0) 2020.12.29
[백준] 1978: 소수 찾기  (0) 2020.12.29
[백준] 1934: 최소공배수  (0) 2020.12.29
[백준] 1929: 소수 구하기  (0) 2020.12.29
복사했습니다!