Регистрация
Войти
Стать экспертом Правила
Информатика

Дано натуральное число 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
110
Контакты
Реклама на сайте
Спрошу
О проекте
Новым пользователям
Новым экспертам