Не возвращает значение из цикла for

Сделайте функцию, которая рассчитывает заданную сумму типа 10+20+30+40. Сделайте так, чтобы её начальное значение было параметром и каждый раз слагаемое увеличивалось бы на 10. Количество слагаемых тоже может быть параметром. Используя эту функцию рассчитайте значение однотипных выражений:

(10+20+30+40 ) + (100+ 110+120+130+140 ) + (220+230+240)

То есть в нём будет три раза вызвана ваша функция с разными входящими параметрами (разное стартовое число и разное количество слагаемых).

class Main{
  public static void main(String[] args) {
int ss = summ(1, 2, 3, 4, 5, 6);
System.out.println("Сумма: " + ss);
  }

public static Integer summ(int start1, int numberOfRepetitions1, int start2, int numberOfRepetitions2, int start3, int numberOfRepetitions3) {
  int summ1;
  int summ2;
  int summ3;
  for(int i = numberOfRepetitions1; i > 0; i--) {
    int summ1 = start1 +10;
    return summ1;
  }
  for(int i = numberOfRepetitions2; i > 0; i--) {
    int summ2 = start2 +10;
    return summ2;
  }
  for(int i = numberOfRepetitions3; i > 0; i--) {
    int summ3 = start3 +10;
    return summ3;
  }
  int summa = summ1 + summ2 + summ3;
  return summa;
  } 
} 

Не получается сложить summ1 + summ2 + summ3. Пишет якобы эти значения не видны, хотя я их выношу за цикл return summ1


Ответы (3 шт):

Автор решения: Дмитрий
public class Main {

    public static void main(String[] args) {
        Integer sum = sum(1, 2, 3, 4, 5, 6);
        System.out.println("Сумма: " + sum);
    }

    public static Integer sum(int ... arr) {
        int sum = 0;
        for (int i = 1; i < arr.length; i+=2) {
            sum += calculate(arr[i-1], arr[i]);
        }
        return sum;
    }
    
    private static int calculate(int value, int count) {
        int result = 0;
        for (int i = 0; i < count; i++) {
            result = result + value + i * 10;
        }
        return result;
    }

}

В целом код странный,к примеру, вызов return внутри цикла выглядит подозрительно. Это означает, что любой из этих циклов прерывается на первой итерации. Тогда возникает справедливый вопрос: зачем вообще нужен цикл?

→ Ссылка
Автор решения: Scruffy the Janitor

Это задача на знание формул арифметической прогрессии. Я не за компом, поэтому напишу только формулы.

Дано:
Int d =10; - разность;
Ввод:
Int a1; -начальное значение прогрессии
n- количество членов прогресси ;
Найти:
an - последний член прогрессии;
Sn- сумма прогресси;

Решение

an=a1+d(n-1);
Sn=((a1+an)*n)/2;

Оберните это в метод к примеру MyProgres(a1,n) и соответственно 3 раза вам надо ее вывести и сложить.

int sum =MyProgres(10,4) +MyProgres(100,5)+MyProgres(220,3);
→ Ссылка
Автор решения: Scruffy the Janitor

Ну вот ответ с циклом просто вместо уравнения суммы, цикл. Можно вообще супер костыль написать, каждую сумму записываете в массив потом сложение , но это смешно

public class primer {
public static int  d =10;
public static int mySumm(int a1,int n){
  int sum=0;
  for(int n1=1;n1!=n+1;n1++){//меньше либо равно нету на телефоне 
    sum+= a1+d*(n1-1);
  }
  return sum;
}

  public static void main(String[] args) {
  
 System.out.println(mySumm(10,4)+
 mySumm(100,5)+
 mySumm(220,3));
   
   
  }
}
→ Ссылка