16 номер. Рекурсия
Вычисление рекурсивной функции
Назовите наименьшее значение n, для которого F(n,0) равно 628 648.
def f(n, r): if n==0: return 2 * r else: return F(n//10, r*10+n%10)Подсказка
Начните с базового случая и направления изменения аргумента. Для выражения из нескольких значений сначала проверьте, можно ли сократить общую часть.
Решение
Искомая величина: Назовите наименьшее значение n, для которого F(n,0) равно 628 648.
Перепишите условие завершения и переходы из приведённого кода, сохранив порядок проверок. Аргументы одного вызова образуют его состояние; если аргументов несколько, храните результат для всего их набора.
Вычисляйте только необходимые состояния и сохраняйте результаты повторяющихся вызовов. После получения значений функции выполните отдельно поиск аргумента или вычисление выражения, указанное в вопросе.
Ответ: 423413.