[Python] 백준 6376 e 계산

수댕✨·2024년 6월 17일

Python

목록 보기
5/6

https://www.acmicpc.net/problem/6376

안 풀리던 이유

  • 처음에는 코드를 잘못짜서 0이 0번 인덱스에 있고 1이 1번 인덱스에 있고 2가 3번 인덱스에 있어서 0이 잘못 들어가서 하나씩 밀렸음
    이걸 눈치 못 채고 출력 형식 오류인 줄 알고 한참 헤맸음
  • 이걸 다시 고치니까 이젠 출력 형식에서 오류가 남
    2번째에서 2.5를 출력할 때 print(i, sum)라고 썼는데 float(sum)를 해야 했던 것.. 왜지?
  • 그리고 3 이상일 때 소숫점 9자리 출력하는 걸 처음엔 round(sum, 9)로 했는데 이거는 안 됐음
    • 중간에 소숫점 8자리인 게 있었는데 round()는 그걸 안 채우고 "%.f9" % sum으로 자릿수 고정했더니 됐음
    • 아마 round()는 만약 지정 자릿수가 넘는 게 있으면 거기서 반올림하는 거고 "%.9f"는 무조건 넘든 안 넘든 자릿수를 0으로 채우거나 반올림 하는 거여서 그런 듯함

제출 성공 코드

def fac(n):
  sum = 1
  for i in range(1, n + 1):
    sum *= i
  if n == 0:
    return 1
  else:
    return sum


print("n e")
print("- -----------")

sum = 0
for i in range(10):
  sum += 1 / fac(i)
  if (i < 2):
    print(i, int(sum))
  elif i == 2:
    print(i, float(sum))
  else:
    print(i, "%.9f" % sum)
profile
개인 공부용🫧

0개의 댓글