Описание задачи
Программа принимает на вход два числа и при помощи рекурсии находит их произведение.
Решение задачи
- Принимаем на вход два числа и записываем их в отдельные переменные.
- Передаем эти переменные в качестве аргументов в рекурсивную функцию.
- В начале работы функции проверяем, является ли первый аргумент меньше второго. Если является, то вызываем данную функцию вновь, меняя аргументы местами.
- В качестве базового условия рекурсии принимаем равенство
0второго аргумента функции (меньшего). Пока второй аргумент не равен0, функция возвращает сумму первого аргумента и рекурсивный вызов самой себя, где второй аргумент уменьшается на1. - Когда второй аргумент уменьшится до
0, функция при последнем вызове возвратит0и ее работа завершится. - Выводим результат на экран.
- Конец.
Исходный код
def product(a, b):
if (a < b):
return product(b, a)
elif (b != 0):
return (a + product(a, b-1))
else:
return 0
a = int(input("Введите первое число: "))
b = int(input("Введите второе число: "))
print("Произведением двух чисел будет: ", product(a, b))
Объяснение работы программы
- Пользователь вводит два числа и они записываются в переменные
aиb. - Передаем эти переменные в качестве аргументов в рекурсивную функцию
product(). - В начале работы функции проверяем, какой из аргументов больше. Если первый аргумент меньше второго, то вызываем данную функцию вновь, меняя аргументы местами, то есть
product(b, a). - В качестве базового условия рекурсии принимаем равенство
0второго аргумента функции (меньшего). Пока второй аргумент не равен0, функция возвращает сумму первого аргумента и рекурсивный вызов самой себя, где второй аргумент уменьшается на единицу:a + product(a, b-1). - Когда второй аргумент уменьшится до
0, функция при последнем вызове возвратит0и ее работа завершится. Таким образом, мы в результате накопили сложение числаac самим собой ровноbраз, что как раз эквивалентно умножениюaнаb. - Выводим результат на экран.
Результаты работы программы
Пример 1: Введите первое число: 12 Введите второе число: 10 Произведением двух чисел будет: 120 Пример 2: Введите первое число: 12 Введите второе число: 11 Произведением двух чисел будет: 132

