• 締切済み

javaのfor文

nの値の和を求めるのはこれ以外に書き方はありますか? import java.util.*; class SampleGoo{ public static void main(String args[]){ Scanner std = new Scanner(System.in); System.out.print("整数値:");int n = std.nextInt(); int ans = 0; for (int i = 1;i <= n;i++){ ans = ans + i; } System.out.println(Integer.toString(ans)); } }

みんなの回答

  • seasoning
  • ベストアンサー率25% (182/713)
回答No.3

>nの値の和を求めるのはこれ以外に書き方はありますか? 綺麗、汚いを抜きにロジックを考えようと思えば、いくらでも考えられますが。。。

  • luckymako
  • ベストアンサー率55% (29/52)
回答No.2

修正します。 public static int sum2(int n){  if(n > 0)   return sum2(n - 1) + n;  else   return 0; }

  • luckymako
  • ベストアンサー率55% (29/52)
回答No.1

入力の方法ということですか? →コマンド引数から入力する方法があります。 和の計算の方法ということですか? →sum0 ~ sum3 は全て同じ結果を返します。 public class Sum {  public static int sum0(int n){   int sum = 0;   for(int i = 1; i <= n; i++)    sum += i;   return sum;  }    public static int sum1(int n){   int sum = 0;   while(n > 0)    sum += n--;   return sum;  }    public static int sum2(int n){   if(n > 0)    return sum3(n - 1) + n;   else    return 0;  }    public static int sum3(int n){   int sum =    n % 2 == 0 ?    n / 2 * (1 + n):    n / 2 * n + n;   return sum;  }    public static void main(String[] args) {   int n = Integer.valueOf(args[0]);   System.out.println("ans = " + sum0(n));   System.out.println("ans = " + sum1(n));   System.out.println("ans = " + sum2(n));   System.out.println("ans = " + sum3(n));  } }