А136д

Задача. Даны натуральное число $n$, действительные числа [latex]a_{1}, \ldots, a_{n}[/latex]. Вычислить: [latex]a^{2}_{1} + \ldots + a^{2}_{n}[/latex].

Входные данные
$n$ — количество элементов последовательности ($n > 0$). $a$ — значение элемента, прочитанного из входного потока

Выходные данные
$sum$ — переменная для хранения суммы последовательности

Тесты

$n$ $a$ $sum$
2 5, 8 89
3 6, 13, 4 221
7 2, 4, 8, 16, 32, 64, 128 21844

Код

Решение
Из входного потока считывается число $n$ — кол-во элементов последовательности. Затем начинается цикл с условием «пока $n$ не равно нулю». Из входного потока считывается следующий элемент. К переменной $sum$ суммируются вычисления $a * a$, после чего декрементируется $n$. В выходной поток подаётся значение переменной $sum$.

5 thoughts on “А136д

  1. — Вы пишите, что sum — сумма последовательности. Это не так. Исправьте, пожалуйста.
    — Если в условии указано, что задается целое положительное число, то в чём смысл проверки на положительность? Вы не доверяете автору задачи? Тогда нужно проверять, вдруг это не целое число. Вдруг это вообще не число. Вдруг входной поток вообще пуст. Конечно, так никто не делает. Т.е. ситуации бывают, но тогда это обозначается в условии. Например, просят вбросить исключительную ситуацию после анализа входных данных. Возможно вы опасались, что программа зациклится при вводе отрицательного значения из-за цикла while c декрементом n? Тогда это стоит описать. Хотя такой подход методически неверен. Если n число элементов, то это константа и нечего его трогать.
    — «В выходной поток подаётся переменная sum». Строго говоря только её значение.

Добавить комментарий