Подсчёт рекурсивных вызовов
Ниже приведены две рекурсивные функции F и G. Функция G печатает символ «звёздочка» и при выполнении условия вызывает функцию F. Сколько символов «звёздочка» будет напечатано на экране при выполнении вызова F(14)?
1def F(n): 2 if n > 0: 3 G(n - 3) 4 5def G(n): 6 print("*") 7 if n > 1: 8 F(n - 1)
Условие как в банке ФИПИ — открыть и сверить
| Ниже на пяти языках программирования записаны две рекурсивные функции (процедуры): F и G.
Сколько символов «звёздочка» будет напечатано на экране при выполнении вызова F(14)? | ||||||||||||
| | ||||||||||||
Формат: число или слово без единиц измерения; дробную часть отделяйте запятой.
1Мягкая — с чего смотретьуровень 1 из 3
Проследите только те вызовы, которые начинаются с F(14), и посчитайте выполнения команды печати в G.
2Наводящая — какие числа считатьуровень 2 из 3
При каждом вызове G печатается одна «звёздочка». После G(n) новый вызов F выполняется только при $n > 1$.
3Прямая — фактически решениеуровень 3 из 3
Цепочка вызовов имеет вид $F(14) \to G(11) \to F(10) \to G(7) \to F(6) \to G(3) \to F(2) \to G(-1)$. Функция G вызывается четыре раза.