Просмотреть рабочий код можно здесь
Ссылка на задачу, решённую на С++
Задача. Найти сумму членов арифметической прогрессии $a, a + d, a + 2d, \dots, a + (n — 1)d$ по заданным значениям $a$, $d$ и $n$
Тесты
$a$ | $d$ | $n$ | $S_{n}$ |
---|---|---|---|
8 | 657 | 0 | 0 |
5 | 0 | 2 | 10 |
2 | 2 | 2 | 6 |
5 | 8 | 1 | 5 |
0 | 5565 | 88 | 21302776 |
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
class Main { static function main() { var a:Int = Std.parseInt(Sys.stdin().readLine()); var d:Int = Std.parseInt(Sys.stdin().readLine()); var n:Int = Std.parseInt(Sys.stdin().readLine()); var result:Float = ((2 * a + d * (n - 1)) / 2) * n; Sys.stdout().writeString(Std.string(result) + "\n"); } } |
Алгоритм
Для выполнения задачи была использована формула суммы арифметической прогрессии — [latex] S_{n} = \frac{2a_{1} + d(n — 1)}{2} * n [/latex]. $a_{1}$ — первый член арифметической прогрессии, $d$ — разница арифметической прогрессии и $n$ — номер последнего члена суммы. В выходной поток подаётся результат вычислений по данной формуле