Дано натуральное число 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
Не нашли ответ?
Похожие вопросы