Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вывод нечетных чисел из диапазона

Steelhawk Знаток (365), закрыт 6 лет назад
Даны два целых числа A и В. A > B. Требуется вывести все нечётные числа от A до B включительно, в порядке убывания. Обойтись без инструкции if.
Завис на определении ближайшего нечетного числа в меньшую сторону от А. Пробовал нечто вроде: for x in range(((А // 2) * 2 - 1), B-1, -2):
Подскажите, я в правильном направлении двигаюсь или совсем иначе все?
Лучший ответ
extrn Мыслитель (7175) 6 лет назад
в правильном
for x in range(A + A % 2 - 1, B - 1, -2):
или
for x in range((A + 1) // 2 * 2 - 1, B - 1, -2):
или
for x in range(A - 1 | 1, B - 1, -2):
как больше нравится
Остальные ответы
Foo Мыслитель (7467) 6 лет назад
print([x for x in range(a + 1 - a % 2, b + 1, 2)][::-1])
SteelhawkЗнаток (365) 6 лет назад
Спасибо, здорово, только вот насколько я понимаю то, что в фигурных скобках, это работа со строкой, а она еще по идее не пройдена. Я надеялся, что есть варианты решения с простейшими операциями остатка от деления и целочисленного деления. Эх
лексей дронин Мыслитель (5682) 6 лет назад
print(*reversed(list(filter(lambda x : x%2, range(a,b+1)))))
Похожие вопросы