function sumIntegerUpTo(number) {
return (1 + number) * number/2;
}
Я могу думать о двух простых способов для меня вспомнить эту формулу:
Подумайте о добавлении номера с обоих концов последовательности: 1 и N, 2 и N-1, 3 и n-2 и т. д. Каждая из этих маленьких сумм заканчивается равным n + 1. Оба конца заканчиваются в середине (в среднем) последовательности, поэтому их должно быть n/2. Итак, sum = (n + 1) * (n/2).
Число до числа (до 1 + n)/2) равно количеству, которое равноудаленно этому среднему, всегда равно удвоенному среднему значению, n/2 пары, поэтому sum = (n + 1)/2 * 2 * n/2 = (n + 1)/2 * n.
Вы можете довольно легко расширить эти рассуждения на другой стартовый номер, что дает вам: SUM (цифры от а до Ь, включительно) = (а + Ь)/2 * (Ь-а + 1) ,
http://ru.wikipedia.org/wiki/Summation#Some_summations_of_polynomial_expressions Это четвертый. –
@ FK82 - Это не так. Вам нужно снова прочитать вопрос. –
@Simon: Вы правы, ** сумма ** нет ** товар **. Благодарю. :-) – FK82