Мини-урок · перед практикой
Ряд - 3
Находим наибольшее нечётное число не больше A и идём с шагом −2.
Как к ней подойти
Научитесь замечать повторяющееся действие и аккуратно собирать результат в цикле for.
Коротко о теме
Цикл for подходит, когда известно, сколько раз нужно повторить действие. Перед циклом задайте начальное значение результата, внутри обновляйте его, а после цикла выводите итог. Проверьте, входит ли последняя граница в range().
Ключевая идея · Рекомендуемое решение
Для нечётного a поправка равна 0, для чётного — 1; if не нужен.
Проверьте перед запуском
- Обе версии обходятся без if.
- Остаток и // в Python позволяют работать и с отрицательными границами.
После практики
Сравните свой подход
Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.
Ваше принятое решение
Рекомендуемое решение
Для нечётного a поправка равна 0, для чётного — 1; if не нужен.
a = int(input())
b = int(input())
start = a - (1 - a % 2)
for x in range(start, b - 1, -2):
print(x)
Время: O(A−B+1). Память: O(1).
Ещё один способ
Формула через целочисленное деление даёт ближайшее нечётное число снизу, затем while перечисляет остальные.
a = int(input())
b = int(input())
x = (a - 1) // 2 * 2 + 1
while x >= b:
print(x)
x -= 2
Время: O(A−B+1). Память: O(1).