Как в ЕГЭ · 22 из 42
№16. Разность двух значений
По мотивам задания №16. Функция задана так: F(n) = n при n ≥ G и F(n) = n + 2 + F(n + 2) при n < G, где G — граница. Спрашивают разность двух значений — например, F(82) − F(81) при G = 2025. Прямая рекурсия от 81 до 2025 — почти тысяча вложенных вызовов, у самого предела Python, а при границе побольше она просто падает.
Что сделать
Посчитайте разность F(a) − F(b) для функции из условия так, чтобы большая граница не обрывала счёт.
Что приходит
granica— граница Gaиb— аргументы, разность значений функции в которых нужна
Что вернуть
Целое число F(a) − F(b).
Допишите функцию raznost в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
G = 10, нужна F(4) − F(3). F(4) = 6 + F(6) = 6 + 8 + F(8) = 14 + 10 + F(10) = 24 + 10 = 34. F(3) = 5 + 7 + 9 + 11 + F(11) = 32 + 11 = 43. Разность — −9.
raznost(10, 4, 3)
-9
F(n) = n, если n ≥ G; иначе F(n) = n + 2 + F(n + 2). Аргументы — целые числа, бывают и не меньше G.
Развернув определение, F(n) — это сумма k + 2 по всем k = n, n + 2, n + 4, …, пока k < G, плюс первое такое k, которое уже не меньше G.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.