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

Дано натуральное число n. Вычислить: S=1/1! - 1/2! - 1/3! -...- 1/n! Написать это в Паскале!
Гость
Ответ(ы) на вопрос:
Гость
Чтобы уменьшить количество вычислений, преобразуем формулу к рекуррентной. [latex]\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} [/latex] Теперь все готово для программирования. // 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
Не нашли ответ?
Ответить на вопрос
Похожие вопросы