Вопрос задан 26.07.2026 в 15:37. Предмет Информатика. Спрашивает Пушкарев Денис.

Напишите программу, которая получает два целых числа и находит их произведение, не используя операцию умножения. Учтите, что числа могут быть отрицательными.
Пример:
Введите два числа:
10 -15
10*(-15)=-150

Это цикл с условием ( while)
ПАСКАЛЬ

Помогите пожалуйста
Заранее спасибо

Перейти к ответам

Ответы на вопрос

Отвечает Беляева Елизавета.

Произведение можно найти повторным сложением. Если второе число положительное, первое число прибавляется нужное количество раз. Если второе число отрицательное, первое число вычитается, а счётчик постепенно увеличивается до нуля.

pascal
program ProductWithoutMultiplication;

var a, b: integer; originalA, originalB: integer; product: integer;

begin write('Введите два числа: '); readln(a, b);

{ Сохраняем исходные числа для вывода } originalA := a; originalB := b;

product := 0;

if b > 0 then begin while b > 0 do begin product := product + a; b := b - 1; end; end else begin while b < 0 do begin product := product - a; b := b + 1; end; end;

writeln(originalA, '*(', originalB, ')=', product); end.

Например, при вводе:

10 -15

цикл выполнится 15 раз. На каждом шаге из результата будет вычитаться число 10:

0 - 10 - 10 - 10 ... = -150

Результат:

10*(-15)=-150

Программа правильно работает со всеми сочетаниями знаков:

10 и 15   → 150
10 и -15  → -150
-10 и 15  → -150
-10 и -15 → 150

Если одно из чисел равно нулю, цикл не выполнится и результат останется равным нулю.

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос