Напишите программу, которая получает два целых числа и находит их произведение, не используя операцию умножения. Учтите, что числа могут быть отрицательными. Через цикл 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
// если 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
Новые вопросы