Судя по всему, здесь в цикле складываются квадраты всех нечетных чисел от 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 означает, что цикл идет с шагом, соответственно, рассматриваются только нечетные числа.
Ivanovna
05.06.2020
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.
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
с информатикой, что означает эта картинка?Отчёт?За Форма с информатикой, что означает эта картинка?Отчёт?За Форма? ">
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 означает, что цикл идет с шагом, соответственно, рассматриваются только нечетные числа.