Рекурсивный подсчёт звёздочек
Ниже на пяти языках программирования записаны две рекурсивные функции (процедуры): F и G.
Функция F(n) при $n > 0$ вызывает G(n − 1). Функция G(n) печатает символ «звёздочка», а при $n > 1$ вызывает F(n − 3).
Сколько символов «звёздочка» будет напечатано на экране при выполнении вызова F(18)?
Условие как в банке ФИПИ — открыть и сверить
| Ниже на пяти языках программирования записаны две рекурсивные функции (процедуры): F и G.
Сколько символов «звёздочка» будет напечатано на экране при выполнении вызова F(18)? | ||||||||||||
| | ||||||||||||
Формат: өлшем бірліктері жоқ сан немесе сөз; бөлшек бөлігін үтірмен бөліңіз.
1Мягкая — с чего смотретьдеңгей 1 из 3
Сколько звёздочек печатает один вызов G? При каком условии после этого вызывается F?
2Жетекші — қандай сандарды есептеудеңгей 2 из 3
Для $n > 2$ число звёздочек при вызове F(n) удовлетворяет рекуррентному соотношению $f(n) = 1 + f(n - 4)$.
3Тікелей — іс жүзінде шешімдеңгей 3 из 3
Последовательно уменьшайте аргумент F: $18 \to 14 \to 10 \to 6 \to 2$. При $n = 2$ функция F вызывает G, которая печатает одну звёздочку и больше рекурсивных вызовов не делает.