Понимание функции числа рекурсивного треугольника - PullRequest
2 голосов
/ 28 января 2020

У меня есть следующая рекурсивная функция, которая возвращает номер n-го треугольника. Не могли бы вы объяснить, как вывод, например, 10, когда я запускаю how(4)?

def how(n):
   if(n==1):
      return 1;
   else:
      return(n+how(n-1))
print(how(4))

1 Ответ

1 голос
/ 28 января 2020

Функция logi c выглядит следующим образом - если n равно 1, вернуть 1. В противном случае верните n + how(n-1). Если мы пройдемся по функции для how(4), мы увидим, как это может работать:

how(4) - returns 4 + how(3)
how(3) - returns 3 + how(2)
how(2) - returns 2 + how(1)
how(1) - returns 1

Если сложить все это вместе, следующее эквивалентно:

how(4) - returns 4 + how(3)
how(4) - returns 4 + 3 + how(2)
how(4) - returns 4 + 3 + 2 + how(1)
how(4) - returns 4 + 3 + 2 + 1 = 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...