Рассмотрим натуральное число x. Требуется прибавить к нему минимальное возможное целое неотрицательное число y, чтобы двоичная запись получившегося числа x+y имела ровно k единиц. Формат ввода
Первая строка ввода содержит натуральное число x
Вторая строка ввода содержит натуральное число k
Формат вывода
Выведите минимальное возможное целое неотрицательное число y, такое, что двоичная запись числа x+y имеет ровно k единиц.
Пример входных и выходных данных
Ввод Вывод
20 3
4
begin
odd:=0;
even:=1;
writeln ('Введите число N');
read(N);
writeln('Введите N целых чисел');
for i:=1 to N do
begin
read(a);
if (a mod 2 = 0) then even:=even*a
else odd:=odd+a;
end;
writeln('Произведение чётных чисел равно ', even);
writeln('Сумма нечётных чисел равна ', odd);
end.
2)var N, plus, minus, i: integer;
a: real;
begin
plus:=0;
minus:=0;
writeln ('Введите число N');
read(N);
writeln('Введите N чисел');
for i:=1 to N do
begin
read (a);
if(a > 0) then plus:=plus+1;
if (a < 0) then minus:=minus+1;
end;
writeln('Количество положительных чисел равно ', plus);
writeln('Количество отрицательных чисел равно ', minus);
if (plus<minus) then writeln ('Отрицательных больше чем положительных на ', minus-plus);
if (plus>minus) then writeln ('Положительных больше чем отрицательных на ', plus-minus);
if (plus=minus) then writeln ('Количество положительных равно количеству отрицательных');
end.