демлан
08.07.2021 21:02

очень прям очень от
P.S не пишите всякую ерунду а то БАН


очень прям очень от P.S не пишите всякую ерунду а то БАН
очень прям очень от P.S не пишите всякую ерунду а то БАН

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
matveiarzhanoff
05.07.2022 23:30

procedure SortFirstColAsc(p:array[,] of integer);

begin

 var c:=p.Col(0).OrderBy(x->x).ToArray;

 for var i:=0 to p.RowCount-1 do p[i,0]:=c[i]

end;

procedure SortLastColDesc(p:array[,] of integer);

begin

 var j:=p.ColCount-1;

 var c:=p.Col(j).OrderByDescending(x->x).ToArray;

 for var i:=0 to p.RowCount-1 do p[i,j]:=c[i]

end;

begin

 var n:=ReadInteger('Количество строк в матрице:');

 var m:=ReadInteger('Количество столбцов в матрице:');

 Writeln('*** Исходная матрица [',n,',',m,'] ***');

 var a:=MatrRandom(n,m,-99,99);

 a.Println(4); Writeln(4*a.ColCount*'-');

 Writeln('Сортировка по первой колонке');

 SortFirstColAsc(a);

 a.Println(4); Writeln(4*a.ColCount*'-');

  Writeln('Сортировка по последней колонке');

  SortLastColDesc(a);

 a.Println(4)

end.

Пример

Количество строк в матрице: 4

Количество столбцов в матрице: 7

*** Исходная матрица [4,7] ***

 -12  60  18 -46  10   4  26

 32 -73  -2 -88 -70 -46 -17

 -18  94 -41   9 -11  32  94

 32 -18   1 -71 -96 -77  46

Сортировка по первой колонке

 -18  60  18 -46  10   4  26

 -12 -73  -2 -88 -70 -46 -17

 32  94 -41   9 -11  32  94

 32 -18   1 -71 -96 -77  46

Сортировка по последней колонке

 -18  60  18 -46  10   4  94

 -12 -73  -2 -88 -70 -46  46

 32  94 -41   9 -11  32  26

 32 -18   1 -71 -96 -77 -17

Объяснение:

так?

0,0(0 оценок)
Ответ:
Пусть чисел в отрезке N штук.
тогда сумма подряд идущих чисел, начиная с х будет равна
Sum = Nx + N*(N-1)/2
здесь второе слагаемое - это частичная сумма арифметической прогрессии 0,1,2,3...N
Максимальное значение N будет при нулевом x
1/2 (N - 1) N = 1014
N^2/2 - N/2 - 1014 = 0
N = 1/2 - sqrt(8113)/2 - нехороший корень
N = 1/2 + sqrt(8113)/2 - а это правильный, равный 45,53
Максимальное значение x будет при N=1
x = 1014, это тривиальное решение
Перебирать будем по N, просто меньше перебора
Nx + N*(N-1)/2 = 1014
Nx = 1014 - N*(N-1)/2
x =  1014/N - (N-1)/2 = (2028 - N(N-1))/(2N)
и проверять x на целостность

var 
  x,n,counter:longint;
begin
 counter:=0;
  for n:=1 to 45 do
    if (2028 - N*(N-1))mod(2*N) = 0 then 
    begin
      inc(counter);
      x := (2028 - N*(N-1))div(2*N);
      writeln ('x=',x,' N=',n);
    end;
  writeln('Всего решений ',counter);
end.

а отрезков 6
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота