![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Rocket |
![]()
Сообщение
#1
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 306 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Нужно написать программу вычисления суммы факториалов всех чётных чисел от 2 до 100, используя подпрограмму для вычисления факториалов.
|
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
В поиск... Подпрограмма для вычисления факториалов больших чисел уже выкладывалась на форуме, так же, как и программа для нахождения суммы, которая тебе нужна!
|
Rocket |
![]()
Сообщение
#3
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 306 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Программу я написал:
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! компилятор выдаёт следующую ошибку: Floating point overflow. Что делать, подскажите. Сообщение отредактировано: Altair - |
klem4 |
![]()
Сообщение
#4
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
А ты попробуй сам посчитать 100! и поймешь в чем дело ... очень большое число выходит, в Real оно не поместится
Что тебе нужно делать ? Прочитать пост №2. -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Rocket |
![]()
Сообщение
#5
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 306 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
В поиске похужую тему не получилось найти.
Подскажите пожайлуста. |
klem4 |
![]()
Сообщение
#6
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: ![]() ![]() ![]() |
Длинная арифметика
Внизу модуль Volvo для работы с большими числами Цитата Кроме этого, модуль содержит реализацию вычисления факториала, корректно работающую с числами больше 12... Procedure Fact(Var A: TLargeInt; n: LongInt); -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
Rocket |
![]()
Сообщение
#7
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 306 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Вот оканчательный вариант программы (решена через рекурсию):
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.
Большое спасибо тем, кто принимал участие в обсуждение этого топика. Сообщение отредактировано: Altair - |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
И тебе ЭТОГО достаточно? Ты бы сразу говорил, что тебе не нужно вычислять факториал с точностью до единиц, а достаточно результата 9.333564332617967 * 10^157 (ты представляешь себе, ЧТО это за число? Кстати, хочешь я для интереса приведу здесь точное, до единиц значение нужной тебе суммы?)
|
Rocket |
![]()
Сообщение
#9
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 306 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Валяй.
|
volvo |
![]()
Сообщение
#10
|
Гость ![]() |
Вот эта сумма:
Цитата(Console) 9333564332617971985596018467227020903065654134088304973047398395833383430802345 8451476498346375013246436791749910869210824214880296081688944437945541028258666 |
arhimag |
![]()
Сообщение
#11
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 424 Пол: Мужской Репутация: ![]() ![]() ![]() |
долгол программа считала?
-------------------- Чего хочет женщина – того хочет Бог
|
volvo |
![]()
Сообщение
#12
|
Гость ![]() |
0.01 секунды, а тебе зачем?
|
arhimag |
![]()
Сообщение
#13
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 424 Пол: Мужской Репутация: ![]() ![]() ![]() |
мой варинат работал 3,5 секунды
![]() А может, компьютер тебе Upgrade-ить надо ![]() Сообщение отредактировано: volvo - -------------------- Чего хочет женщина – того хочет Бог
|
![]() ![]() |
![]() |
Текстовая версия | 19.04.2025 22:14 |