Разбираемся:
Давайте посчитаем количество символов '*' при вызове F(28):
Пусть count(n) - количество символов, выведенных при вызове F(n). Тогда:
Рассчитаем значения для небольших n:
Заметим, что count(n) = fibonacci(n+2), где fibonacci(n) - n-ое число Фибоначчи, умноженное на 1.
Таким образом, количество символов '*' при вызове F(28) будет равно fibonacci(30).
Числа Фибоначчи можно считать итеративно или использовать формулу Бинэ, но для нашей задачи проще реализовать итеративный подсчет.
Реализуем итеративный подсчет:
a = 1
b = 1
for i in range(2, 30):
c = a + b
a = b
b = c
print(b)
Получаем, что fibonacci(30) = 1346269
Ответ: 1346269