Вопрос Программа на паскале с факториалами

Регистрация
14 Ноя 2013
Сообщения
80
Репутация
0
Спасибо
0
Монет
0
Рассчитать сумму факториалов чисел в диапазоне от 1 до 5. Написать на это программу на паскале
 
program sum_factorials;

var
i, j, factorial, sum: integer;

begin
sum := 0;

for i := 1 to 5 do
begin
factorial := 1;

for j := 1 to i do
begin
factorial := factorial * j;
end;

sum := sum + factorial;
end;

writeln('Сумма факториалов от 1 до 5: ', sum);
readln;
end.
 
program factorial_sum;

var
i, n, fact, sum: integer;

begin
sum := 0;
for n := 1 to 5 do
begin
fact := 1;
for i := 1 to n do
fact := fact * i;
sum := sum + fact;
end;
writeln('Сумма факториалов чисел от 1 до 5 равна ', sum);
end.
 
Однопроходный алгоритм линейной сложности. program FactSum;
var
fact, sum: integer;
i: integer;
begin
fact := 1;
sum := 0;
for i := 1 to 5 do begin
fact := fact * i;
sum := sum + fact;
end;
writeln('Сумма факториалов: ', sum)
end. Для сравнения, у обоих алгоритмов предыдущих ораторов сложность - квадратичная: внутри цикла они крутят ещё один цикл, чтобы снова и снова вычислять те же самые произведения, которые они уже вычисляли.
 
begin
write(1+1+2+3+5);
end.
 
Назад
Сверху