Python/백준 python

[파이썬/python] 백준 2089번 -2진수

CE : 하랑 2023. 3. 24. 10:39

 

 

 

 

문제

 

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

10진법의 수를 입력 받아서 -2진수를 출력하는 프로그램을 작성하시오.

 

 

 

 

 

 

 

 

 

입력

 

첫 줄에 10진법으로 표현된 수 N이 주어진다.

ex)

-13

 

 

 

 

 

 

 

출력

 

-2진법 수를 출력한다.

ex)

110111

 

 



 

코드

 

import sys

n=int(sys.stdin.readline())

num=''

if n==0:
    print(0)
      
while(1):

    if n==0:
        break

    elif n%(-2):
        num='1'+num
        n=n//(-2)+1

    else:
        num='0'+num
        n=n//(-2)

print(num)