728x90
📚문제
📝풀이
# 4696 St. Ives
while True:
n = float(input())
if n !=0:
cnt = 0
if n != 0:
for i in range(5):
cnt += (n**i)
if str(cnt)[-1]=='0':
print(f'{cnt:.2f}')
else:
print(round(cnt,2))
else:
break
문제에서 가끔 입력이 float로 주어지고,
소수점 아래 첫 번째 자리까지 밖에 나오지 않는 값을
소수점 아래 두 번째 자리까지 출력해야되는 경우가 있다
(ex 2801.0 => 2801.00)
이럴 때 보통 str로 변환 후 '0'을 붙여준 다음에 다시 숫자 형태로 변환해줬다
근데 문자열로 출력되도 상관없는 경우면 모르겠지만
숫자형으로 출력해야할 경우
float( 값 ) 하면 다시 2801.0으로 돌아온다
이 때 , f-string을 사용하여 답의 포맷을 .2f (문제에서 요구하는 자릿수까지) 형태로 변경시켜주면 간단하다
728x90
'Python(알고리즘,문제풀이) > BOJ (Bronze IV)' 카테고리의 다른 글
백준 5358번 / Football Team - 파이썬 (0) | 2023.08.01 |
---|---|
백준 5357번 / Dedupe -파이썬 (0) | 2023.08.01 |
백준 3765번 / Celebrity jeopardy - 파이썬 (0) | 2023.07.29 |
백준 2845번 / 파티가 끝나고 난 뒤 - 파이썬 (0) | 2023.07.29 |
백준 2530번 / 인공지능 시계 - 파이썬 (0) | 2023.07.28 |