Предмет: Информатика, автор: Arsen1215

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

Ответы

Автор ответа: Аноним
0
Чтобы уменьшить количество вычислений, преобразуем формулу к рекуррентной.
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!=ktimes (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
Похожие вопросы
Предмет: Другие предметы, автор: Аноним
Предмет: Математика, автор: Аноним
Предмет: Математика, автор: nina2002301