Как мне вычислить сумму всех чисел от 0 до n?

#java #loops #sum

#java #циклы #сумма

Вопрос:

Итак, я пытаюсь вычислить все числа от 0 до заданного числа (n) с помощью цикла, как показано в моем коде, но я просто не могу понять, как это сделать.

 public static int sumOfNumbers(int... params) {

     int sum = 0;

     for (int i : params) {
         sum = i;
     };

     return sum;
}      
  

Комментарии:

1. Вам нужно добавлять к sum , а не присваивать ему

2. попробуйте это sum = i;

Ответ №1:

Вы перезаписываете sum , а не добавляете к нему. Вы должны использовать = оператор вместо = operator:

 sum  = i;
  

В качестве альтернативы, вы можете рассматривать это как математическую задачу и использовать формулу для суммы арифметической прогрессии:

 public static int sumZeroToN(int n) {
    return n * (n   1) / 2;
}
  

Ответ №2:

Это сумма чисел в ряду, поэтому вы можете сделать это в O (1), используя:

 int sum = n * (n   1) / 2;
  

Где n наибольшее число в params , params являющееся массивом / коллекцией чисел от 0 до n .

Ответ №3:

Вы могли бы использовать sum из IntStream :

 return Arrays.stream(params).sum();
  

Ответ №4:

вы пытаетесь вычислить сумму арифметического ряда, поэтому вы можете просто сделать это без цикла:

сумма =((параметр 1)* параметр)/ 2;

параметр — это заданное число.

Ответ №5:

Вы перезаписываете переменную sum в каждом цикле и забываете суммировать, вам нужно изменить свой код на что-то вроде этого:

 public static int sumOfNumbers(int... params) {

    int sum = 0;

    for (int i : params) {
        sum  = i; //Same as sum = sum   1;
    };

    return sum;
}
  

Ответ №6:

Поскольку вы хотите от 0 до n, вы могли бы использовать IntStream например

IntStream.rangeClosed(0, n).sum()

Ответ №7:

 int sum = 0;
for (int i = 0; i <= n; i  ) {
 sum = sum   i;
}
System.out.println(sum);
  

Ответ №8:

Используйте цикл for, а не для каждого цикла! Для каждого цикла используйте with a List.

 int sum = 0;
for(int i=0; i<n; i  ) {
   sum  = i // same as sum = sum   i;
}
return sum;
  

Или просто использовать:

 int sum = n * (n   1) / 2;