Мини-урок · перед практикой

Ряд - 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).