Вопрос задан 23.06.2023 в 19:07. Предмет Информатика. Спрашивает Семьохіна Лєна.

Рекурсивная сумма Запишите рекурсивную функцию, вычисляющую сумму целых чисел m и n, в которой из

арифметических операций используется только прибавление и вычитание единицы. В данной задаче запрещено использовать циклы, массивы. Вы обязаны решить задачу с помощью рекурсивной функции. Входные данные Дано два целых числа, по модулю не превосходящих 300. Выходные данные Выведите сумму. Примеры Ввод Вывод 2 3 5
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Никольская Лилия.

Объяснение:

def amount(a, b):

   if b > 0:

       a += 1

       b -= 1

       return summ(a, b)

   else:

       return a

n = int(input())

m = int(input())

print(summ(m, n))

Сначала проверяется условие b > 0. Это базовый случай, то есть случай, когда рекурсия заканчивается. Потом идёт присваивание первому числу единицы, а из b она вычитается. Прибавление единицы числу a будет ровно b раз, то есть к числу а прибавится значение числа b. И когда уже b равно нулю, то происходит выход из рекурсии, и функция возвращает число a, то есть сумму чисел a и b.

Програмка не работает с отрицательными числами, мне лень думать :3

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи, мы можем создать рекурсивную функцию, которая будет прибавлять или вычитать единицу от одного из чисел до тех пор, пока одно из чисел не станет равным нулю. Затем вернем другое число в качестве результата. Вот пример на Python:

python
def recursive_sum(m, n): if m == 0: # Если m стало равным нулю, возвращаем n return n elif n == 0: # Если n стало равным нулю, возвращаем m return m else: if m > 0: # Если m положительное, уменьшаем его на единицу, увеличиваем n на единицу return recursive_sum(m - 1, n + 1) else: # Если m отрицательное, увеличиваем его на единицу, уменьшаем n на единицу return recursive_sum(m + 1, n - 1) # Ввод данных m = int(input()) n = int(input()) # Вызываем функцию и выводим результат result = recursive_sum(m, n) print(result)

При вводе 2 и 3, данная функция вернет 5, как указано в вашем примере.

0 0

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

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

Последние заданные вопросы в категории Информатика

Задать вопрос