電子書籍の厳選無料作品が豊富!

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));
}
}

A 回答 (3件)

>nの値の和を求めるのはこれ以外に書き方はありますか?


綺麗、汚いを抜きにロジックを考えようと思えば、いくらでも考えられますが。。。
    • good
    • 0

修正します。



public static int sum2(int n){
 if(n > 0)
  return sum2(n - 1) + n;
 else
  return 0;
}
    • good
    • 0

入力の方法ということですか?


→コマンド引数から入力する方法があります。
和の計算の方法ということですか?
→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));
 }
}
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!