//cd c:\JavaTry\Application1 //javac Repeat2.java //set CLASSPATH=. //java Repeat2 100000 class Repeat2 { public static void main(String[] args) { long total = 0; //1から引数args[0]で与えられた値0までの和 System.out.println("args[0] = " + args[0]); //String型の引数から、Integerクラスのstaticメソッドで整数化する。 int n = Integer.parseInt(args[0]); for(int i = 0; i <= n; i++) { total = total + i; } System.out.println("1 から" + n + "までの和 = " + total); } } /* class Repeat2 { public static void main(String[] args) { int total = 0; //1から引数args[0]で与えられた値0までの和 System.out.println("args[0] = " + args[0]); //String型の引数から、Integerクラスのstaticメソッドで整数化する。 int n = Integer.parseInt(args[0]); for(int i = 0; i <= n; i++) { total = total + i; } System.out.println("1 から" + n + "までの和 = " + total); } } C:\JavaTry\Application1>java Repeat2 10000 args[0] = 10000 1 から10000までの和 = 50005000 C:\JavaTry\Application1>java Repeat2 50000 args[0] = 50000 1 から50000までの和 = 1250025000 C:\JavaTry\Application1>java Repeat2 100000 args[0] = 100000 1 から100000までの和 = 705082704 C:\JavaTry\Application1>java Repeat2 1000000 args[0] = 1000000 1 から1000000までの和 = 1784293664 int total = 0; を long total = 0; に変更すると問題なし。 C:\JavaTry\Application1>java Repeat2 100000 args[0] = 100000 1 から100000までの和 = 5000050000 C:\JavaTry\Application1>java Repeat2 1000000 args[0] = 1000000 1 から1000000までの和 = 500000500000 */