galina1809
05.03.2023 07:54

Построение блок-схемы алгоритма обработки последовательности чисел (массивов). - [большие буквы здесь вместо обычных коэффициентов и переменных, а маленькие вместо нижних индексов] пусть а0=1; ak=ka-1 + 1/k k=1, дано натуральное n. получить an

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
nasyapest
19.01.2020 02:16
// 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

Указанный ряд - это известный в математике расходящийся гармонический ряд. Его приближенное значение суммы можно определить по формуле Эйлера:
\displaystyle S(m)=\sum_{i=1}^m \frac{1}{i} \approx \ln(m)+C, \quad C\approx 0.577\ 215\ 664\ 902
Нам требуется определить m, для которого S(m)>a, тогда
\displayvalue \ln(m)+C\ \textgreater \ a; \ ln(m)\ \textgreater \ a-C \to m\ \textgreater \ e^{a-C}
Будем искать 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
0,0(0 оценок)
Ответ:
Mihail568
01.01.2020 09:10
// PascalABC.NET 3.0, сборка 1156 от 30.01.2016
begin
  var n,m:integer;
  Read(n,m);
  var a:array[,] of integer;
  SetLength(a,n,m);
  for var i:=0 to n-1 do
    for var j:=0 to m-1 do Read(a[i,j]);
  var k,r:integer;
  Read(k,r);
  var p:=0; //будущий результат
  foreach var x:integer in a do begin
    var s:=0; var q:=x; var k1:=0;
    while q<>0 do begin
      s:=s+(q mod 10); q:=q div 10; Inc(k1)
      end;
    if (k1=k) and (s mod r = 0) then Inc(p)
    end;
  Writeln(p)
end.

Тестовое решение:
5 5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
2 3
5
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота