Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3811983
А
Аноним
18 часов назад · публичный вопрос
А
Аноним

напиши программу на фото 2 по примеру на фото 1

Ответ нейросети
18 часов назад

На фото 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) нужен, потому что глубина рекурсии больше стандартной тысячи. В этих задачах рекурсия линейная: на каждом шаге один вызов, поэтому дополнительные оптимизации не требуются.