Ряд - 3
Вы решили задачу. Теперь можно сравнить подходы.
Находим наибольшее нечётное число не больше A и идём с шагом −2.
Авторский разбор для локальной версии на основе условия задачи. Это не выгрузка чужих посылок и не официальное решение исходного сайта.
Ваше принятое решение
Рекомендуемое решение: Рекомендуемый подход
Для нечётного 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).
На что обратить внимание
- Обе версии обходятся без if.
- Остаток и // в Python позволяют работать и с отрицательными границами.
Рекомендация учитывает сложность и читаемость для этой задачи. Единственного самого быстрого решения для всех размеров входа и всех компьютеров может не быть.