Помощь - Поиск - Пользователи - Календарь
Полная версия: Не пойму где ошибка :(
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Visual
Задача такая:

Дана некоторая последовательность C. Найти максимальный номер I, при котором выполнено нижеследующее условие: C1=Ln(1+1!), C2=Ln(1+3!),C3=Ln(1+5!)...
Ci <1.0e+06

Вот начал делать:


Program zadacha;

uses crt;
Function Fact(N: Word): LongInt;
Begin
If N = 1 then
Fact:= 1
else
Fact:= N * Fact(N-1);
End;

var m, i,c:real;
begin

m:=1;
i:=1;
while c<1.0e+06 do
begin
c:=ln(1+i);
m:=m+2;
i:=Fact(round(m));
end;

writeln©;
readln;

end.



По моему тут ошибка с объявлением переменных. Помогите пожалуйста!
volvo
Цитата
По моему тут ошибка с объявлением переменных.
Факториал 14 уже не помещается в LongInt, но при этом Ln(1 + 11!) равен всего 17.5 ...

Понимаешь, в чем дело? Тебе не надо вычислять факториал отдельно, достаточно домножать на очередной итерации произведение на (m - 1)*m, чтобы получать постоянно m!, при этом пускай m остается типа Real, так туда поместится гораздо большее число, чем 12! ...
Visual
volvo - спс, респект!:)
Visual
Блин, у меня всё равно ошибка вылетает((
volvo
Показывай код...
Visual
Всё тема закрыта, я всё сделал!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.