For20. Дано целое число $$N$$ ($$> 0$$). Используя один цикл, найти сумму $$ 1! + 2! + 3! + … + N! $$ (выражение $$ N! $$ — $$ N $$-факториал — обозначает произведение всех целых чисел от $$1$$ до $$N$$: $$N! = 1*2*…*N$$). Чтобы избежать целочисленного переполнения, проводить вычисления с помощью вещественных переменных и вывести результат как вещественное число.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
program For20; var Rez:Real; N, i :Integer; begin Write('Введите N: '); Readln(N); Rez:=1; For i:=2 to N-1 do begin Rez:=Rez+Rez*i; end; Writeln(Rez); end. |
Решение от SW_Developer:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
program For20; var Rez, sum :Real; N, i :Integer; begin Write('Введите N: '); Readln(N); Rez :=1; sum :=0; For i:=1 to N do begin Rez:=Rez*i; sum := sum + Rez; end; Writeln(sum); end. |
Другие задачи из раздела For можно посмотреть здесь.
Что-то не сходится. Задачник ругается.
Исправил «For i:=1 to N-1 do» на «For i:=2 to N-1 do». Вычисления начинаются с 2! так как «Rez:=1;» это и есть 1!
Вот рабочий код:
Исправил на ваше решение.
Было:
Хотя нет, добавил… моё тоже вроде как рабочее …