Предмет: Информатика, автор: HP2020

Рекурсивный алгоритм F для удобства записан на пяти языках программирования.
Чему равна сумма всех чисел, на экране при выполнении вызова F(1)?

Приложения:

BlackHole3003: 1 вроде
BlackHole3003: а нет

Ответы

Автор ответа: Warning3
0

Відповідь:

a = 0

def F(n):

   global a

   print(n)

   a += n

   if n < 4:

       F(n + 1)

       F(n + 3)

F(1)

print(a)

1, 2, 3, 4, 6, 5, 4

Сумма данных чисел составляет: 25

Пояснення:


HP2020: Спасибо! А почему алгоритм выведет именно эти числа?
Warning3: F(n + 1)
F(n + 3)
Эти штуки перевызивают вашу функцию.
Максимальное число данная функция выведет 6 если вы укажите при ее вызове 1 т.к после проверки n < 4 вызываетса два раза подряд ваша функция первая делает число которое вы передали на 1 больше другая на 3 больше. И оно будет работать пока проверка говорит все хорошо. Если n > 4 проверка неработает. Функция заканчивает работу.
Warning3: Тут не сложно догадаться что делает код. Если вы конечно програмист.
Похожие вопросы
Предмет: Математика, автор: томара80