Var
i, g: integer;
begin
for i := 50 downto 2 do
if i mod 2 = 0 then g := g + i;
writeln(g);
end.
101000001
321 в двоичной системе
Заведём ещё один массив и будем в него записывать, правда ли, что в массиве есть элементы, равные данному, и текущий элемент - первый из них. Затем выведем все элементы, для которых это оказалось правдой.
Pascal
var
i, j, n: integer;
flag: boolean;
a: array[1..10000] of integer;
b: array[1..10000] of boolean;
begin
read(n);
for i := 1 to n do
begin
read(a[i]);
b[i] := true;
end;
b[n] := false;
for i := 1 to n - 1 do
if b[i] then
begin
flag := true;
for j := i + 1 to n do
if a[i] = a[j] then
begin
flag := false;
b[j] := false;
end;
if flag then
b[i] := false;
end;
for i := 1 to n do
if b[i] then
write(a[i], ' ');
end.
Логика такая:
1) Число 157 - это суммы 15 и 7 в порядке убывания, т.к. 1 и 57 не подойдут в виду условий задачи.
2) Пусть наименьшее число abc, тогда желательно b+c = 15, а a+b = 7.
Подберем: чтобы цифра b в нашем числе было наименьшей, цифра c должна взять на себя наибольшее значение -> 9. Тогда b = 6.
Итого: a69.
a будет 1, т.к. 1+6 = 7.
Таким числом является 169.
Проверим: 1+6 = 7. 6+9 = 15. В порядке убывания получается 157.