18117번 - 분수
이 문제에서 마지막에 (remainder * 10) / divisor 를 연속적으로 출력해야 하는데,
여기서 remainder와 divisor의 type을 unsigned long long 으로 사용하면 AC를 받고, long long으로 잡으면 WA를 받는 것을 확인했습니다.
범위가 크게 차이나지 않는 것으로 아는데, 어떻게 overflow를 막을 수 있는 건가요?
long long은 최댓값이 1000경이 조금 못 되고, unsigned long long은 1000경이 조금 넘습니다. 10^18 = 100경이니, 이 범위 내에서 * 10을 하면 long long은 오버플로우가 날 수 있고 unsigned long long은 안 납니다.
궁금증이 깔끔하게 해결되었습니다. 감사합니다!
댓글을 작성하려면 로그인해야 합니다.
weasel 4년 전
이 문제에서 마지막에 (remainder * 10) / divisor 를 연속적으로 출력해야 하는데,
여기서 remainder와 divisor의 type을 unsigned long long 으로 사용하면 AC를 받고, long long으로 잡으면 WA를 받는 것을 확인했습니다.
범위가 크게 차이나지 않는 것으로 아는데, 어떻게 overflow를 막을 수 있는 건가요?