새소식

자료구조&알고리즘

BOJ_#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, 11011, 11000, 11001 등이다.

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

입력

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

출력

-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]
728x90

'자료구조&알고리즘' 카테고리의 다른 글

Pro_#72410 : 신규 아이디 추천  (0) 2022.07.15
Pro_#1845 : 폰켓몬  (0) 2022.07.12
Pro_#67256 : 키패드 누르기  (0) 2022.07.11
Pro_#17682 : 다트 게임  (0) 2022.07.10
Pro_#68935 : 3진법 뒤집기  (0) 2022.07.10
Contents