
Помогите срочно, ДАЮ 95 БАЛОВ. Нужно написать программу с рекурсивной функцией для умножения двух
чисел А*В используя только операцию сложения. С++

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

#include <iostream>
double multiply(double num1, double num2) {
if (num2 > 0) return num1 + multiply(num1, num2 - 1);
else if (num2 < 0) return -num1 + multiply(num1, num2 + 1);
return 0;
}
signed main() {
//2.2 * 2
std::cout << multiply(2.2, 2) << std::endl;
//4 * 2
std::cout << multiply(4, 2) << std::endl;
//-8 * 2
std::cout << multiply(-8, 2) << std::endl;
//0*1
std::cout << multiply(0, 1) << std::endl;
return 0;
}



Для решения данной задачи мы можем использовать свойство умножения, которое гласит, что A * B можно представить как A + A + ... + A (B раз), где А и B - целые числа.
Таким образом, мы можем написать рекурсивную функцию, которая будет повторять операцию сложения А с самим собой В раз.
Вот пример кода на языке Python:
```python def multiply_recursive(A, B): if B == 0: # базовый случай, когда число B равно 0 return 0 else: return A + multiply_recursive(A, B-1) ```
В этой программе функция `multiply_recursive` принимает два аргумента - числа А и В. Сначала программа проверяет базовый случай, когда число B равно 0. В этом случае функция возвращает 0, так как умножение на 0 дает всегда 0.
Если базовый случай не выполняется, то функция рекурсивно вызывает саму себя, уменьшая число В на 1 в каждом шаге, и прибавляет число А к результату предыдущего вызова функции. Таким образом, функция постепенно прибавляет А к самому себе В раз и возвращает итоговый результат.
Пример использования функции:
```python result = multiply_recursive(5, 3) print(result) # Выводит 15, так как 5 * 3 = 5 + 5 + 5 = 15 ```
Надеюсь, это помогло! Если у вас остались вопросы, пожалуйста, дайте мне знать.


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







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








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili