РКН [?]Python элементарный код

ned0b0g

Новичок
Статус
offline
Регистрация
08.11.2019
Сообщения
28
Репутация
3
Python:
def F(n):
    print("*")
    if n > 0:
        F(n - 2)
        F(n - 3)

Сколько звездочек получится при F(5)?

Объясните идиоту, почему печатается 9 звездочек?

Это код из задачи в которой нужно уточнить, сколько звездочек напечатается на экране.
 
Последнее редактирование:

RawBerry

Местный
Статус
offline
Регистрация
08.09.2018
Сообщения
50
Репутация
57
потому что 3+2=9
 

ned0b0g

Новичок
Статус
offline
Регистрация
08.11.2019
Сообщения
28
Репутация
3
Я до сих пор не знаю ответ кста :D
 

uglyboy322

Местный
Статус
offline
Регистрация
13.01.2017
Сообщения
197
Репутация
74
Стандартная задача на рекурсивный вызов функции.


кол-во входов в функцию

Код:
-> F(5) *
-> F(5)-> F(3) *
-> F(5)-> F(3)-> F(1) *
-> F(5)-> F(3)-> F(1)-> F(-1) *
-> F(5)-> F(3)-> F(1)-> F(-2) *
-> F(5)-> F(3)-> F(0) *
-----------------------------
-> F(5)-> F(2) *
-> F(5)-> F(2)-> F(0) *
-> F(5)-> F(2)-> F(-1) *

вот тебе 9 и набегает)

P.S. вывести можешь этим кодом


Код:
def F(n,check=""):
    check = check + "-> " + "F({0})".format(n)
    print(check)
    if n > 0:
        F(n - 2,check)
        print("-"*20)
        F(n - 3,check)


if __name__ == '__main__':
    F(5)
    input()