관리 메뉴

진취적 삶

-2진수 본문

알고리즘/수학 1 연습

-2진수

hp0724 2023. 6. 27. 11:59

bookmark

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

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

모범답안

n = int(input())
stack = []
ans = ""

if n == 0:
    ans = 0
while n:
    if n % -2:
        stack.append(abs(n % -2))
        n = (n // -2) + 1

    else:
        stack.append(n % -2)
        n = n // -2

while stack:
    ans += str(stack.pop())


print(ans)

나머지가 있는 경우에는 n = (n // -2) + 1 없는 경우에는 n = n // -2

stack pop 해서 뒤집기

'알고리즘 > 수학 1 연습' 카테고리의 다른 글

GCD 합  (0) 2023.06.27
숨바꼭질 6  (0) 2023.06.27
2진수 8진수  (0) 2023.06.27
8진수 2진수  (0) 2023.06.27
골드바흐 파티션  (0) 2023.06.27