標準入力で数値を受け取って処理を行うプログラムを書いているのですが、データ型をlongにしてもinteger number too largeというエラーが出てしまいます。
調べたところ、数値の最後に"L"を付けて、longであることを明示的に示す必要があるようです。
手動で数値を入力し、 10000000000L というふうに末尾にLを付けてプログラムを実行したところ、コンパイルエラーが出ることなく正常に終了することが出来ました。
Scannerで受け取った数値(long型)の末尾に"L"を付けるにはどうしたらいいでしょうか?
回答お待ちしております。
Java
1 2package practice202101; 3import java.util.Scanner; 4 5public class Practice0123 { 6 7 public static void main(String[] args) { 8 9 Scanner sc = new Scanner(System.in); 10 11 try { 12 long a = sc.nextLong(); 13 long b = sc.nextLong(); 14 System.out.println(calc1(a , b)); 15 16 }catch (Exception e ) { 17 18 System.out.println("Exception"); 19 } 20 } 21 22 23 public static long calc1(long x, long y){ 24 25 long result = -1; 26 27 if(x == 0 && y == 0){ 28 result = 0; 29 }else if((y - x + 1) % 2 == 0){ 30 result = (x + y) * ((y - x + 1) / 2); 31 }else{ 32 result = ((x + y) * ((y - x + 1) / 2)) + (x + ((y - x + 1) / 2)); 33 } 34 35 return result; 36 } 37} 38