Напишите программу, которая получает два целых числа и находит их произведение, не...

0 голосов
26 просмотров

Напишите программу, которая получает два целых числа и находит их произведение, не используя операцию умножения. Учтите, что числа могут быть отрицательными. Через цикл WHILE!!!! (c++)


Информатика (408 баллов) | 26 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

// идея решения: a * b (если b > 0) эквивалентно сумме a + a + ... + a (b раз)
// если b < 0, меняем знак у a
// если b = 0, ответ всегда 0
 
#include
 
int mult(int a, int b) {
  if (b == 0) return 0;
  if (b < 0) return mult(-a, -b);
  int product = 0;
  while (b > 0) {
    product += a;
    b--;
  }
  return product;
}
 
int main() {
  int a, b;
  std::cin >> a >> b;
  std::cout << mult(a, b);<br>  return 0;
}
 
Пример ввода: -2 -7
Пример вывода: 14

(148k баллов)