Составьте алгоритм нахождения произведения z двух натуральных чисел x и y безиспользования операции умножения
Составьте алгоритм нахождения произведения z двух натуральных чисел x и y безиспользования операции умножения
Ответ(ы) на вопрос:
числа представлены в двоичной системе счисления. чтобы их перемножить требуется:
z = 0
перебирать разряды числа Y, начиная с младшего
начало цикла
если очередной разряд = 1, прибавить текущее число X к Z;
умножить число X на 2. т.к. без умножения, то с помощью битового сдвига на 1 влево в двоичной СС
конец цикла
собственно, это умножение в столбик в двоичной СС
var
i,z,y,x: integer; // объявление переменных
begin // начало программы
writeln('Введите числа: '); // Вывод сообщения
readln(x,y); // Ввод чисел х и у с клавиатуры
while i <> y do // Повторять цикл пока i не будет равно y
begin // Вход в цикл
z:=z+x; // z = z + x (при первом шаге получается 0 = 0 + х)
i:=i+1; // Увеличиваем счетчик цикла на 1
end; // Выход из цикла
write(z); // Вывод z (произведение х и у)
end. // Конец программы
Не нашли ответ?
Похожие вопросы