Нужно написать программу вычисления суммы факториалов всех чётных чисел от 2 до 100, используя подпрограмму для вычисления факториалов.
В поиск... Подпрограмма для вычисления факториалов больших чисел уже выкладывалась на форуме, так же, как и программа для нахождения суммы, которая тебе нужна!
Программу я написал:
Program FactorialX;
const n=100;
Function sumfact(n:integer):real;
var i:integer; p:real; s:real;
begin
p:=1;
s:=0;
begin
for i:=1 to n do
begin p:=p*i;
if i mod 2=0 then s:=s+p;
end;
end;
sumfact:=s;
end;
begin
writeln('Summa factorialov = ', sumfact(n));
readln;
end.
А ты попробуй сам посчитать 100! и поймешь в чем дело ... очень большое число выходит, в Real оно не поместится
Что тебе нужно делать ? Прочитать пост №2.
В поиске похужую тему не получилось найти.
Подскажите пожайлуста.
http://forum.pascal.net.ru/index.php?showtopic=2428&hl=%F4%E0%EA%F2%EE%F0%E8%E0%EB%EE%E2+%E1%EE%EB%FC%F8%E8%F5+%F7%E8%F1%E5%EB
Внизу модуль Volvo для работы с большими числами
Вот оканчательный вариант программы (решена через рекурсию):
Program FactorilX;
{$N+}
var
n:integer; s:double;
function f(a:double):double;
begin
if a=0 then f:=1
else f:=a*f(a-1)
end;
begin
for n:=2 to 100 do
if n mod 2=0 then s:=s+f(n);
writeln(s);
readln;
end.
И тебе ЭТОГО достаточно? Ты бы сразу говорил, что тебе не нужно вычислять факториал с точностью до единиц, а достаточно результата 9.333564332617967 * 10^157 (ты представляешь себе, ЧТО это за число? Кстати, хочешь я для интереса приведу здесь точное, до единиц значение нужной тебе суммы?)
Валяй.
Вот эта сумма:
долгол программа считала?
0.01 секунды, а тебе зачем?
мой варинат работал 3,5 секунды надо апгрейтить свой модуль
А может, компьютер тебе Upgrade-ить надо