問題: 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");
}
}