ТП
Тима Перелыгин

Помогите улучшить код задачи.

Дано: натуральное n, действительные a 1, a 2,...a n. Вычис-

лить: a1 + a2 * (a2 –1) + a3 * (a3 –1) * (a3 – 2) + a4 * (a4 – 1) * (a4 –

−2) * (a4 – 3) + .+ an * (an – 1) * (an – 2) *...* (an – n +1).

Моё решение

var

n, i, Z, X, F: integer;

a, g, S, j: real;

begin

repeat

write('Введите длину последовательности n=');

readln(n);

until n > 0;

X := 0;

Z := -2;

for i := 1 to n do

begin

write('Введите a=');

readln(a);

if S = 0 then S := S + a else

begin;

F := 1;

J := 0;

Z := Z + 1;

g := (a - F);

j := j + (a * g);

for X := 0 to Z do

begin;

F := F + 1;

g := (a - F);

j := j * g;

end;

S := S + j;

end;

end;

writeln('Результат', S);

end.

Можно ли упростить код (Массивы использовать нельзя)

Долго я ломал над ней голову, Прошу ткнуть носом если есть во что. Буду благодарен

Рома Михалькевич
Рома Михалькевич

Здесь вообще нужны три переменные: счетчик номера ввода переменной, переменная для общей суммы и переменная для нового слагаемого, т. к. нужно посчитать произведение. При каждом следующем считывании запускаете цикл, в котором высчитывается следующее слагаемое.

ВШ
Валерий Шальнов

Бред! Либо ты не то написал в условии: тебе же дан массив а (n)? Либо, если известен закон вычисления а (i), то где он?

Похожие вопросы
Помогите с задачей по физике
помогите решить задачу.
Помогите решить задачу!!!
Помогите с задачей нужно написать код!
напишите код этой задачи на С++
помогите мне с задачами
Visual Basic. Помогите написать код для задачи.
помогите с задачей:)
Помогите с задачами
Помогите с задачей