В языке ассемблера для процессора «Тетриум» есть команда ADDSUB. Эта команда берёт значения регистров b, c и d и кладёт в регистр a величину 2^b+2^c−2^d. При расчёте энергопотребления процессора потребовалось по содержимому регистров b, c и d выяснить, сколько единиц будет в двоичной записи числа, которое окажется в регистре a
после выполнения команды ADDSUB.
Формат ввода
В первой и единственной строке ввода через пробел перечислены три целых числа b, c и d ( 1≤d Формат вывода
Вывести количество единиц в двоичной записи значения выражения 2^b+2^c−2^d.
n = 10;
var
a: array[1..n] of integer;
i, j, t: integer;
flag:boolean;
begin
Randomize;
Writeln('Исходный массив');
for i := 1 to n do
begin
a[i] := random(101)-50;
Write(a[i]:4)
end;
Writeln;
i:=1;
repeat
flag:=true;
for j := 1 to n-i do
if a[j] > a[j+1] then
begin t := a[j]; a[j] := a[j+1]; a[j+1] := t; flag:=false end;
Inc(i);
until (i>n-1) or flag;
Writeln('Отсортированный по возрастанию массив');
for i := 1 to n do Write(a[i]:4);
Writeln
end.
Тестовое решение:
Исходный массив
-32 -7 2 2 50 -33 1 31 4 -16
Отсортированный по возрастанию массив
-33 -32 -16 -7 1 2 2 4 31 50