Сверь числа и знаки с фото.
import sys sys.setrecursionlimit(20000) def g(n): if n<10: return 2n if n>=10: return g(n-2)+1 def f(n): return 2(g(n-3)+8)
print(f(15548))
16 № 14339 (Уровень: Базовый) (Д. Бахтиев) Алгоритм вычисления значений функции \(F(n)\), где \(n\) – целое число, задан следующими соотношениями: \(F(n) = n\) при \(n < 11\); \(F(n) = 2 · n – 3 + F(n – 2)\), если \(n\) [неразборчиво] 11, при этом \(n\) чётно; \(F(n) = 3 · n – 4 + F(n – 3)\), если \(n ≥ 11\) и при этом \(n\) нечётно. Чему равно значение выражения \(F(5500) – F(5497)\)?
16 № 14338 (Уровень: Средний) (Л. Шастин) Алгоритм вычисления значений функций \(F(n)\) и \(G(n)\), где \(n\) – целое число, задан следующими соотношениями: \(F(n) = G(n) = n\), если \(n < 10\); \(F(n) = 3 · n + G(n – 2)\), если \(n > 9\); \(G(n) = n – 2 + F(n – 1)\), если \(n > 9\). Чему равно значение выражения \(F(2204) – G(2200)\)?
На фото 2 два полных задания. Ниже программы для обоих — запусти тот блок, который относится к нужному номеру.
Кратко:
- № 14339: \(F(5500)-F(5497)=16492\).
- № 14338: \(F(2204)-G(2200)=12487\).
№ 14339
import sys
sys.setrecursionlimit(20000)
def F(n):
if n < 11:
return n
if n % 2 == 0:
return 2 * n - 3 + F(n - 2)
return 3 * n - 4 + F(n - 3)
print(F(5500) - F(5497))
Здесь:
- при \(n<11\) сразу возвращается \(n\);
- для чётного \(n\) работает формула \(2n-3+F(n-2)\);
- для нечётного \(n\) — формула \(3n-4+F(n-3)\).
Например, \(F(11)=3\cdot11-4+F(8)=37\), \(F(12)=2\cdot12-3+F(10)=31\).
№ 14338
import sys
sys.setrecursionlimit(20000)
def F(n):
if n < 10:
return n
return 3 * n + G(n - 2)
def G(n):
if n < 10:
return n
return n - 2 + F(n - 1)
print(F(2204) - G(2200))
Здесь:
- при \(n<10\) обе функции возвращают \(n\);
- дальше формулы из условия переписаны почти дословно;
- \(F\) вызывает \(G\), а \(G\) вызывает \(F\), но каждый раз аргумент уменьшается.
Проверка: \(F(10)=3\cdot10+G(8)=38\), \(G(10)=8+F(9)=17\).
sys.setrecursionlimit(20000) нужен, потому что глубина рекурсии больше стандартной тысячи. В этих задачах рекурсия линейная: на каждом шаге один вызов, поэтому дополнительные оптимизации не требуются.