Аватар
Информатика, опубликовано 2018-08-22 23:20:15 by Гость

Дано натуральное число n. Вычислить: S=1/1! - 1/2! - 1/3! -...- 1/n! Написать это в Паскале!

Аватар
Ответ оставил Гость

Чтобы уменьшить количество вычислений, преобразуем формулу к рекуррентной.
/displaystyle S_n= /frac{1}{1!}-/frac{1}{2!}-/frac{1}{3!}-... -/frac{1}{n!} =1-/sum_{i=2}^n /frac{1}{i!}=1-/sum_{i=2}^na_i //  // k!=k/times (k-1)! // a_i= /frac{1}{i!}= /frac{a_{i-1}}{i}, a_2= /frac{1}{2}

Теперь все готово для программирования.
// PascalABC.NET 3.2, сборка 1353 от 27.11.2016

var
  i,n:integer;
  a,s:real;
begin
  Write(n=); Read(n);
  if n=1 then Writeln(S=1)
  else
    if n=2 then Writeln(S=0.5)
    else begin
      s:=0.5; a:=0.5;
      for i:=3 to n do begin a:=a/i; s:=s-a end
      end;
  Writeln(S=,s)
end.

Пример
n=10
S=0.281718198853615

Вопрос
Не нашли ответа?
Если вы не нашли ответа на свой вопрос, или сомневаетесь в его правильности, то можете воспользоваться формой ниже и уточнить решение. Или воспользуйтесь формой поиска и найдите похожие ответы по предмету Информатика.