Наибольшее чётное число
Вводятся три цифры. Требуется составить из них наибольшее возможное чётное число.
Входные данные
Вводятся три цифры, разделённые пробелом. Гарантируется, что хотя бы одна из них отлична от нуля, и хотя бы одна цифра чётная.
Выходные данные
Вывести одно трёхзначное число (без пробелов). Число не может начинаться с нуля.
Примеры
Ввод
Вывод
1 0 0
100
1 5 8
518
В восьмиричной системе: разбиваете двоичное представление на группы по 3 бита справа налево
011 = 3
011 = 3
011 = 3
10 = 2
Тогда в восьмиричной системе: 2333(8) = 2*8^3+3*8^2+3*8^1+3 = 1024+192+24+3=1243(10)
В шестнадцатиричной системе: разбиваете двоичное представление на группы по 4 бита справа налево
1011 = B = 11(10)
1101 = D(16) = 13(10)
100 = 4
Тогда в шестнадцатиричной системе
4DB(16) = 4*16^2+13*16^1+11 =1024+208+11=1243(10)
const
n=5;
type
Matrix=array[1..n,1..n] of integer;
procedure DummySchool(var a:Matrix);
begin
Writeln('Ввод элементов матрицы');
for var i:=1 to n do begin
Write(n,' элементов строки ',i,': ');
for var j:=1 to n do Read(a[i,j]);
end;
Writeln('Сформирована матрица ',n,'x',n);
for var i:=1 to n do begin
for var j:=1 to n do Write(a[i,j]:5);
Writeln
end
end;
begin
var B:Matrix;
DummySchool(B);
var sn:=0;
var sp:=0;
for var i:=1 to n do
for var j:=1 to n do
if B[i,j]<0 then sn+=B[i,j]
else
if B[i,j]>0 then sp+=B[i,j];
Writeln('Сумма отрицательных ',sn);
Writeln('Сумма положительных ',sp)
end.
Тестовое решение:
Ввод элементов матрицы
5 элементов строки 1: 6 23 -5 13 9
5 элементов строки 2: 42 0 -38 16 37
5 элементов строки 3: -5 -18 3 11 8
5 элементов строки 4: 9 13 -11 0 3
5 элементов строки 5: 19 -17 0 15 5
Сформирована матрица 5x5
6 23 -5 13 9
42 0 -38 16 37
-5 -18 3 11 8
9 13 -11 0 3
19 -17 0 15 5
Сумма отрицательных -94
Сумма положительных 232