문제: AtCoder ABC 237 A — Not Overflow English · [한국어] · 日本語
입력값은 32비트 부호 있는 정수의 범위보다 클 수 있으므로 long으로 읽어야 합니다. 32비트 부호 있는 정수의 범위는 Integer.MIN_VALUE(-2^31)부터 Integer.MAX_VALUE(2^31 - 1)까지이며 양 끝값도 포함됩니다. long으로 읽은 값을 두 경계와 비교해 이 범위 안에 있으면 Yes, 아니면 No를 출력합니다. 양 끝값을 포함하는 비교를 사용하므로 경계값은 받아들이고, 범위 바로 바깥의 값은 거부합니다.
Java
1
2
3
4
5
6
7
8
9
10
11
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
long value = Long.parseLong(input.readLine().trim());
System.out.println(Integer.MIN_VALUE <= value && value <= Integer.MAX_VALUE ? "Yes" : "No");
}
}