Дано естественное число n. Вычислить: S=1/1! - 1/2! - 1/3! -...-

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

Задать свой вопрос
1 ответ
Чтоб уменьшить количество вычислений, преобразуем формулу к рекуррентной.
\displaystyle S_n= \frac11!-\frac12!-\frac13!-... -\frac1n! =1-\sum_i=2^n \frac1i!=1-\sum_i=2^na_i \\  \\ k!=k\times (k-1)! \\ a_i= \frac1i!= \fraca_i-1i, a_2= \frac12

Сейчас все готово для программирования.
// 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
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт