воскресенье, 17 января 2021 г.

Интересная задача

 

Условие задача: вычислять сумму элементов рекуррентной последовательности, пока её элемент по модулю не станет меньше 0,00001, элементы последовательности вычисляются по формуле -a(n)=2^n*n!/(n^n)! 

program symma;

var a,s,z,e,k,p:real; n,m,j:integer;

begin

read(e);

z:=2;{первое слагаемое 2, цикл начинаем с второго слагаемого}

s:=1;

n:=1;

k:=2;

a:=2;

m:=1;

while abs(a)>=e do begin

k:=k*2;{вычисляем 2 в степени n}

n:=n+1;

p:=1;

for j:=1 to (n-1) do begin

p:=p*n;

end;

s:=s*p ;

a:=k/s;{слагаемое}

writeln(' a=',a:8:5);

z:=z+a;

m:=m+1;{кол-во слагаемых}

end;

writeln(' кол-во слагаемых=',m:3);

writeln(' otvet=',z:8:5);

end.

Результат:

0.00001

a= 2.00000

a= 0.44444

a= 0.01389

a= 0.00004

a= 0.00000

кол-во слагаемых= 6

otvet= 4.45838

Комментариев нет:

Отправить комментарий