Сначала числа превращает в двоичную систему числення, после эти оба числа слаживаем. После этого начиная с конца превращаем в десятичный код, попутно эти числа слаживаем и получаем решение в десятичной системе числения.
Var a,max,sum:integer; arr:array [0..2015] of integer; begin randomize; max:=-500; sum:=0; for a:=0 to 2015 do begin arr[a]:=random(1001)-500; if max<arr[a] then max:=arr[a]; end; write('максимальный элемент массива ==> ',max); writeln();
if max mod 2 = 1 then begin for a:=0 to 2015 do begin if arr[a] mod 2 =1 then sum:=sum+arr[a]; end; writeln('сумма чисел одинаковой чётности числу ',max,' = ',sum); end;
sum:=0; if max mod 2 = 0 then begin for a:=0 to 2015 do begin if arr[a] mod 2 =0 then sum:=sum+arr[a]; end; writeln('сумма чисел одинаковой чётности числу ',max,' = ',sum); end;
142 = 001 100 010
+
120 = 001 010 000
= 010 110 010
= 2+16+32+128 = 178
Объяснение:
Сначала числа превращает в двоичную систему числення, после эти оба числа слаживаем. После этого начиная с конца превращаем в десятичный код, попутно эти числа слаживаем и получаем решение в десятичной системе числения.