[백준] -2진수

가오리·2023년 1월 17일
0

coding-test

목록 보기
44/107
post-thumbnail

2089번: -2진수

🔗 문제

2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 2^0, 2^1, 2^3, 2^4이 표현 되지만 -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이 주어진다.

-13

출력

-2진법 수를 출력한다.

110111


💡풀이 방법 → 참고

  1. 위의 예시처럼 -13을 기준으로 이야기 하자면

    1. -13 = (-2) * 7 + 1
    2. 7 = (-2) * (-3) + 1
    3. -3 = (-2) * 2 + 1
    4. 2 = (-2)*(-1) + 0
    5. -1 = (-2) * 1 + 1
    6. 1 = (-2) * 0 + 1

    → a~f까지 이어보면 111011이 된다.



💻 코드

# [2089] -2진수
number = int(input())
result = ""
if number == 0:
    result = 0 
while number:
    if number % (-2):
        number = number //(-2) + 1 
        result = '1' + result
    else:
        number //= -2
        result = '0' + result
print(int(result))
profile
가오리의 코딩일기

0개의 댓글