Цитата:
Сообщение от Рома123
3) найти 1!+2!+...+n!
|
Тут есть такая закавыка.
Дело в том, что факториал - очень быстро возрастающая функция. Отсюда сразу вытекает ограничение на параметр n. Так вот, если Ваш Паскаль поддерживает восьмибайтовый формат QWord (максимальное число - 18446744073709551615), то наибольшее n составляет 20. Если же не поддерживает - придется ограничиться четырехбайтовым LongInt (2147483647), и тогда наибольшее n есть 12. На всякий случай выкладываю оба варианта:
Код:
Var
n,i:Byte;
a,Sum:QWord;
Begin
Repeat
Write('n = ');
Readln(n);
if n>20 then writeln('Too big!!! Must be <=20');
Until n<21;
a:=1;
Sum:=0;
for i:=1 to n do
begin
a:=a*i;
Sum:=Sum+a;
end;
Writeln('Sum = ',Sum);
Readln
End.
Код:
Var
n,i:Byte;
a,Sum:LongInt;
Begin
Repeat
Write('n = ');
Readln(n);
if n>12 then writeln('Too big!!! Must be <=12');
Until n<13;
a:=1;
Sum:=0;
for i:=1 to n do
begin
a:=a*i;
Sum:=Sum+a;
end;
Writeln('Sum = ',Sum);
Readln
End.