Составьте алгоритм нахождения произведения z двух натуральных чисел x и y...

0 голосов

Составьте алгоритм нахождения произведения z двух натуральных чисел x и y безиспользования операции умножения


спросил от (15 баллов) в категории Информатика
оставил комментарий от Одаренный (4.6k баллов)

просто алгоритм или программа все-таки нужна?

оставил комментарий от (15 баллов)

просто алгоритм

оставил комментарий от Начинающий (108 баллов)

есть алгоритм правда он за 10 класс и врядли поможет

2 Ответы
0 голосов
ответил от Одаренный (1.4k баллов)
 
Лучший ответ
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.                                // Конец программы 
оставил комментарий от Одаренный (1.4k баллов)

То есть по сути, цикл увеличивает число x само на себя y раз.

оставил комментарий от Одаренный (4.6k баллов)

да, только при большом y это будет, мягко говоря, неважно работать

0 голосов
ответил от Одаренный (4.6k баллов)

Числа представлены в двоичной системе счисления. чтобы их перемножить требуется:
z = 0
перебирать разряды числа Y, начиная с младшего
начало цикла
  если очередной разряд = 1, прибавить текущее число X к Z;
  умножить число X на 2. т.к. без умножения, то с помощью битового сдвига на 1         влево в двоичной СС
конец цикла
собственно, это умножение в столбик в двоичной СС

...