• Предмет: Информатика
  • Автор: elizabeth1990
  • Вопрос задан 8 лет назад

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

Ответы

Ответ дал: nelle987
0
// идея решения: a * b (если b > 0) эквивалентно сумме a + a + ... + a (b раз)
// если b < 0, меняем знак у a
// если b = 0, ответ всегда 0
 
#include <iostream>
 
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);
  return 0;
}
 
Пример ввода: -2 -7
Пример вывода: 14
Вас заинтересует