문제
-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, 11011, 11000, 11001 등이다.
10진법의 수를 입력 받아서 -2진수를 출력하는 프로그램을 작성하시오.
제한
- -2,000,000,000 ≤ N ≤ 2,000,000,000
-13을 -2진수로 표현하는 방법은 왼쪽과 같다.
import sys
def input():
return sys.stdin.readline().rstrip()
num = int(input()) # 10진수 입력
answer = ''
while (num != 0):
if (num % -2 != 0):
num = num // (-2) + 1
answer += '1'
else:
num = num // (-2)
answer += '0'
if (num == ""):
answer = '0'
print(answer[::-1]