Решение **с использованием цикла**: ```js run function sumTo(n) { var sum = 0; for (var i = 1; i <= n; i++) { sum += i; } return sum; } alert( sumTo(100) ); ``` Решение через **рекурсию**: ```js run function sumTo(n) { if (n == 1) return 1; return n + sumTo(n - 1); } alert( sumTo(100) ); ``` Решение **по формуле**: `sumTo(n) = n*(n+1)/2`: ```js run function sumTo(n) { return n * (n + 1) / 2; } alert( sumTo(100) ); ``` P.S. Надо ли говорить, что решение по формуле работает быстрее всех? Это очевидно. Оно использует всего три операции для любого `n`, а цикл и рекурсия требуют как минимум `n` операций сложения. Вариант с циклом -- второй по скорости. Он быстрее рекурсии, так как операций сложения столько же, но нет дополнительных вычислительных затрат на организацию вложенных вызовов. Рекурсия в данном случае работает медленнее всех. P.P.S. Существует ограничение глубины вложенных вызовов, поэтому рекурсивный вызов `sumTo(100000)` выдаст ошибку.