본문 바로가기
Beakjoon&프로그래머스/파이썬

[백준/파이썬]2052번 지수연산

by 현장 2021. 10. 19.

-코드

n = int(input())
a = "%.300f" % (1 / (2 ** n))
l = len(a)
for i in range(l - 1, 1, -1):
    if a[i] != '0':
        last = i
        break
print(a[:last + 1])

처음에 그냥 1 / (2 ** n)으로 했는데 틀려서 이유를 몰라서 찾아보니 일정 범위 이상으로 가면 과학적 표기법을 사용하기 때문에 문제가 되는 것을 알게 되었고 질문 게시판을 보니 "%.300f" % (1 / (2 ** n))으로 범위를 확장시킬 수 있는 것을 알게 되고 for문을 이용하여 문자열을 0 이전까지만 출력하게 만들었습니다.