- 締切済み
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)); } }
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- seasoning
- ベストアンサー率25% (182/713)
>nの値の和を求めるのはこれ以外に書き方はありますか? 綺麗、汚いを抜きにロジックを考えようと思えば、いくらでも考えられますが。。。
- luckymako
- ベストアンサー率55% (29/52)
修正します。 public static int sum2(int n){ if(n > 0) return sum2(n - 1) + n; else return 0; }
- luckymako
- ベストアンサー率55% (29/52)
入力の方法ということですか? →コマンド引数から入力する方法があります。 和の計算の方法ということですか? →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)); } }