Algorithm/SW Expert Academy

[Python] 5186. 이진수2

느낌표 공장장 2021. 9. 30. 17:41
tc = int(input())
for idx in range(1, tc+1):
    n = float(input())

    cnt = 0     # 자리 수 count
    binary = '' # 2진수 저장
    while n > 0:
        temp = n * 2
        binary += str(temp)[0]  # 정수부분 저장
        n = temp - int(temp)    # 소수점 이하 저장
        cnt += 1

        if cnt > 12:    # 13자리 이상이면 중단
            break

    if cnt > 12:    # 13자리 이상이면 overflow 출력
        print('#{} {}'.format(idx, 'overflow'))
    else:
        print('#{} {}'.format(idx, binary))

✔︎ 소수점이 0이 될 때까지 2를 곱한다. 그렇게 2를 곱했을 때 정수 부분이 2진수가 되고 그 값을 변수에 더해가면 된다. 

참고 사이트 : https://coding-factory.tistory.com/652

'Algorithm > SW Expert Academy' 카테고리의 다른 글

[Python] 10726. 이진수 표현  (0) 2021.09.30
[Python] 1242. 암호 코드 스캔  (0) 2021.09.30
[Python] 5185. 이진수  (0) 2021.09.30
[Python] 1240. 단순 2진 암호코드  (0) 2021.09.29
[Python] 5178. 노드의 합  (0) 2021.09.24