Задача к ЕГЭ по информатике на тему «рекурсия» №1

Алгоритм вычисления значения функции F (a,b)  , где a,b  — целые неотрицательные числа, задан следующими соотношениями:

F (a,b) = b  , при a = 0

F (a,b) = F (a− 1,b+ 1)  , если a > 0  » class=»math» src=»/images/inform/quest/quest-4322-6.svg» width=»auto»> </p>
<p class= F (a,b) = F (a+ 1,b− 1)  , если a < 0

Определите cколько будет совершено вызовов функции для чисел 100  и 200  .

def summ(a, b):
    # Объявляем переменную видимой для функции
    global counter
    counter += 1
    if a == 0:
        return b
    elif a > 0:
        return summ(a-1, b+1)
    elif a < 0:
        return summ(a+1, b-1)
counter = 0
print(summ(100, 200), counter)

Ответ: 101
Оцените статью
Я решу все!