Математическая прогрессия неправильно увеличивается

Метод некорректно выдает значения, точнее прогрессия неправильно увеличивается.

Пояснение : Существует три входных параметра : number - первое неизменяемое число в последовательности, addition - число, которое каждый раз увеличивается на саму себя, count - количество прохождений цикла. Приведу как пример : Входные параметры (2, 3, 5), ожидаемое 40, т.к. 2 + (2+3) + (2+3+3) + (2+3+3+3) + (2+3+3+3+3) равняется 40. Но в моем случае выходит 203, сама строчка каждого прохода выглядит так : 7 15 29 55 105 203.

 public static int Calculate(int number, int addition, int count)
    {
        int sum = 0;
        for (int i = 0; i <= count; i++)
        {
            sum = 2;
            sum = sum + (number + addition);
            addition+= addition;
        }
        return sum;
    }

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

Автор решения: Igor

Вы не прибавляете первоначальное значение addition к текущему на каждой итерации, а увеличиваете текущее значение этой пременной в два раза.

function sumN(number, delta, count) {
  let sum = 0;
  let dN = 0;
  for (let i = 0; i < count; i++) {
    sum = sum + (number + dN);
    dN += delta;
  }
  return sum;
}

console.log(sumN(2, 3, 5));

→ Ссылка
Автор решения: Alexey Ten

А можно вообще без цикла, если вспомнить форму сложения арифметической прогрессии:

number * count + addition * count * (count - 1) / 2
→ Ссылка