Андрей
Высший разум
(425914)
5 лет назад
У тебя же n в исходном коде автоматически уменьшается до 30 - если больше. И зачем умножать, а потом делить, когда достаточно только делить?
n = min(30, int(input()))
sum = 1.0
f = 1.0
for i in range(1, n + 1):
f /= i
sum += f
print(sum)
b:real;
begin
read(n);
while n>30 do
n:=n-1;
b:=1;
c:=1;
for i:=1 to n do begin
c:=c*i;
b:=b+1/c;
end;
writeln(b);
end.