blindman писал(а):Необходимо вычислить y = kx, используя только операции арифметического сдвига, сложения и вычитания, за минимальное количество операций.
=DeaD= писал(а):Дано произвольное k - целое, надо выразить его через сумму минимального количества элементов вида +\-2^(целое неотрицательное).
Имхо такая формулировка - существенное упрощение задачи.
Например, чтобы умножить на 0x66
проще сначала умножить на 6 и запомнить результат, а потом полученное умножить еще на 16 и сложить с запомненным.
То есть делаем не четыре сдвига и четыре сложения, а три сдвига и три сложения, но используем лишнюю ячейку памяти для промежуточного результата.
Ну и с минусами так же - просто примеры не столь очевидные.