Викторович Попков
?>

Python.Квадранты Дано число n . Создайте массив размером n × n и заполните его по следующему правилу. На главной и побочных диагоналях стоят нули, эти диагонали делят массив на четыре части. В верхней части записаны единицы, в правой записаны двойки, в нижней записаны тройки, в левой записаны четверки. Данную задачу необходимо решить с генератора, который заполнит матрицу A . Вы должны отправить на проверку единственную строку вида: A = [текст генератора]

Информатика

Ответы

Nikita_Lina1305

A = [[4] * i + [0] + [1] * (n - 2 * (i + 1)) + [0] + [2] * i if i + 1 <= n // 2 else [4] * (n - i - 1) + [0] + [3] * (n - 2 * (n - i)) + [0] + [2] * (n - i - 1) for i in range(n)]

Маргарита1091
Судя по всему, здесь в цикле складываются квадраты всех нечетных чисел от m до n включительно.

m & 1 - это битовая конъюнкция. Результатом будет 1, если m нечетное, и 0, если m - четное (то есть, содержит или не содержит соответствующий разряд)

Выражение вида T ? X : Y, где T - логическое высказывание, принимает значение X, если T истинно, и Y, если T ложно.

Соответственно, i = (m & 1) == 1 ? m : m + 1 означает, что
если m нечетное, то i = m
если четное, i = m+1 (то есть, первое нечетное число после m)

i += 2 означает, что цикл идет с шагом, соответственно, рассматриваются только нечетные числа.
Дудина895
Const
 n = 20;

var
 pos,neg: integer;
 i,k,x: integer;
 ev,un: integer;
 a,b: array [1..n] of integer;

begin
 for i := 1 to n do
   read(a[i]);
  k := 0;
 pos := 0;
 neg := 0;
  for i := 1 to n do
   begin
      ev := 0;
   un := 0;
      x := a[i];
      if x <> 0 then
     if x > 0 then
       if (x < pos) or (pos = 0) then
         pos := x
       else
     else
       if (x > neg) or (neg = 0) then
         neg := x;
      x := abs(x);
      while x <> 0 do
     begin
     if odd(x) then
       un := un + 1
     else
       ev := ev + 1;
     x := x div 10
     end;
      if un = ev then
     begin
     k := k + 1;
     b[k] := a[i]
     end
      end;

 writeln(pos,' ',neg);
 for i := 1 to k do
   write(b[i],' ')
 end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Python.Квадранты Дано число n . Создайте массив размером n × n и заполните его по следующему правилу. На главной и побочных диагоналях стоят нули, эти диагонали делят массив на четыре части. В верхней части записаны единицы, в правой записаны двойки, в нижней записаны тройки, в левой записаны четверки. Данную задачу необходимо решить с генератора, который заполнит матрицу A . Вы должны отправить на проверку единственную строку вида: A = [текст генератора]
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

menesmir
Дмитрий-Олейникова
pbttehnology
ekasatkina
mail5
jaksonj326
alex091177443
Акимцева27
notka19746
germanleon
Mbkozlov6
ecocheminnov437
Анатольевич-Фатима
ganzashop
Voronin-Albertovich