Дано целое число N (> 0). Вывести сумму 2 + 1/(2!) + 1/(3!) + … + 1/(N!) (выражение N! — «N факториал» — обозначает произведение всех целых чисел от 1 до N: N! = 1•2•…•N). Полученное число является приближенным значением константы e = exp(1) (= 2.71828183…) — Pascal(Паскаль)

Program f;
Uses crt;
Var k,l,n:longint; sum:real;
Function fact(n:longint):longint;
Var k:integer;
begin
k:=n;
While k>1 do
begin
k:=k-1;
n:=n*k;
end;
fact:=n;
end;
Begin
Clrscr;
Write('Введите n: ');Readln(n);
l:=n; sum:=2;
Repeat
n:=fact(n);
sum:=sum+1/n;
n:=l-1;
l:=l-1;
Until l=1;
Writeln('Значение числа "e" = ',sum:8:6);
End.

Вариант 2

const
  eps=1E-7;
var
  i,n:integer;
  res,x:real;
begin
  res:=2;
  x:=1;
  repeat
    readln(n)
  until
    n>0;
  for i:=2 to n do
  begin
    x:=x*i;
    res:=res+(1/x);
  end;
  writeln('Eps = ',res);
end.

Вариант 3

program n2;
 var i,n,j:integer;
     sum:real;
 function fact(n:integer):integer;
    var i,fac:integer;
     begin
      fac:=1;
       for i:=1 to n do begin
        fac:=fac*n;
       end;
    fact:=fac;
   end;
  begin
       write('vvedite N = ');
       readln(n);
       sum:=2;
       for i:=2 to n do begin
 
         sum:=sum+1/fact(i);
       end;
 
       writeln(sum);
     readln;
   end.

Leave a Comment

85 + = 88