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!
Вот рабочий код:
Исправил на ваше решение.
Было:
Хотя нет, добавил… моё тоже вроде как рабочее …