Дано вещественное число а . найти такое наименьшее m, при котором: 1+ 1/2+1/3++ 1/m> a
116
296
Ответы на вопрос:
// pascalabc.net 3.0, сборка 1160 от 05.02.2016 function sharm(m: integer): real: =range(1,m).select(x-> 1/x).sum; begin var a: =readreal('a='); var m: =1; while sharm(m)< =a do inc(m); writeln('m=',m) end. тестовое решение: a= 5 m=83 указанный ряд - это известный в расходящийся гармонический ряд. его приближенное значение суммы можно определить по формуле эйлера: нам требуется определить m, для которого s(m)> a, тогда будем искать m, отбрасывая дробную часть полученного результата, а потом делать уточнение путем непосредственного вычисления сумм. // pascalabc.net 3.0, сборка 1160 от 05.02.2016 const c=0.577215664902; // постоянная эйлера-маскерони function sharm(m: integer): real: =range(1,m).select(x-> 1/x).sum; begin var a: =readreal('a='); var m: =1; if a< =3 then begin while sharm(m)< =a do inc(m); writeln('m=',m) end else begin var s: real: =int(exp(a-c)); if a< 10 then begin m: =trunc(s); while sharm(m)< =a do inc(m); writeln('m=',m) end else writeln('m=',s) end end. в этом случае можно проводить оценочный расчет для больших значений а: a= 200 m=4.05709150011779e+86
Популярно: Информатика
-
longer12316.12.2020 19:34
-
Регина241114.11.2020 11:59
-
EsmaVaida26.06.2023 17:42
-
elenamatrus77703.01.2021 13:03
-
OneDirection241228.08.2022 08:37
-
алтуша979631.03.2020 12:43
-
fil026.05.2021 03:26
-
КираГринРоуз25.04.2023 14:48
-
соаовоых09.07.2021 17:01
-
dddashaaa105.08.2021 18:03