페이지

2089번: -2진수

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


#include<cstdio>
typedef long long ll;
ll n;
void f(ll low, ll up, ll p) {
    if (n<low || n > up) f(low + (p > 0)*-2 * p, up + (p < 0)*-2 * p, p*-2);
    if (p < 0 ? n < low - p : n > up - p) {
        n -= p;
        printf("1");
    }
    else printf("0");
}
int main() {
    scanf("%lld", &n);
    f(0, 1, 1);
    return 0;
}

댓글 없음 :

댓글 쓰기