Домашние задания: Информатика

Pascal | Помогите, пожалуйста, решить задание.

Var
summa: real;
n, i: byte;

begin
summa := 0;
write('Пожалуйста, введите с клавиатуры количество чисел: ');
readln(n);
i := 1;
while i < n do
begin
summa := summa + 1 + 1 * (i + 1) - n - 1;
i := i + 1;
end;
writeln('Сумма всех чисел = ', summa, '.');
end.
Моя попытка, которая оказалась неверной.
Например если n=4, мы будем искать 1+1*2 + 1*2*3 + 1*2*3*4
Какая закономерность? Количество слагаемых = n. Количество перемножаемых растет от 1 до n
Шаги цикла все целочисленные, перемножаем целочисленные, результат перемножения и сложения тоже целый. Используем int
ИТОГО.
i
n
k - переменная для счета подцикла с произведением
res - результат перемножения в подцикле
summ - и конечно нужна переменная для суммы всей этой бадяги
Поехали

Алгоритм: Сначала основной цикл while(i<n) для summ1+summ2+...summN
Потом подцикл перемножения 1*2*...*n

Var
summ, n, i, res, k: integer;

begin
summ := 1;
res:=0;
write('Пожалуйста, введите с клавиатуры количество чисел: ');
readln(n);
i := 1;
while i < n do
begin
res:=1;
k:=1;
while k < i+1 do
begin
k:=k+1;
res:=res*k;
end;
summ:=summ+res;
i:=i+1;
end;
writeln('Сумма всех чисел = ', summ, '.');
end.

Код кривоватый, но рабочий) Ваш учитель - знаток мозготраха))
Через фор это делается куда проще))) Просто отличие вайла от фора в том, что фор доходит до конца, а вайл обрывает сразу как только условие меняется...
Можно и как у челика повыше, но я сомневаюсь что тебе понятны действия и учитель не подумает что ты списал.
А в моём варике тут и кривой код, и подгонка на результат)) Все лучшие показатели тру студента.
Удачи
СМ
Севиля Меметова
30 218
Лучший ответ
Александр Еникеев Спасибо большое! Стало намного понятнее.
А что нужно то?
Александр Еникеев Нужно найти сумму 1+1*2+1*2*3+1*2*3*4+…+1*2*3*4*…*n, используя цикл while.