본문 바로가기

알고리즘 문제풀이

Swea D3_11753. 이진수2 Python 2진법

t = int(input())
for tc in range(1,t+1):
    n = float(input())
    str = ''
    while n != 1:
        n *= 2
        if n > 1:
            n -= 1
            str += '1'
        elif n < 1:
            str += '0'
        else:
            str += '1'
            break
    if len(str) < 13: print(f"#{tc} {''.join(str)}")
    else: print(f"#{tc} overflow")

다음날 풀이

def solveBinary(n):
    new_str = ''
    cnt = 0
    while n >0 and cnt < 13:
        n *= 2
        if n >= 1:
            n -= 1
            new_str += '1'
            cnt += 1
        else:
            new_str += '0'
            cnt += 1
    if cnt >= 13:
        return 'overflow'
    else:
        return new_str
t = int(input())
for tc in range(1,t+1):
    n = float(input())
    print(f'#{tc} {solveBinary(n)}')