Мини-урок · перед практикой
Ряд - 2
Направление обхода зависит от взаимного порядка границ.
Как к ней подойти
Научитесь замечать повторяющееся действие и аккуратно собирать результат в цикле for.
Коротко о теме
Цикл for подходит, когда известно, сколько раз нужно повторить действие. Перед циклом задайте начальное значение результата, внутри обновляйте его, а после цикла выводите итог. Проверьте, входит ли последняя граница в range().
Ключевая идея · Рекомендуемое решение
Конец range сдвигается на один шаг за b, чтобы b вошло в вывод.
Проверьте перед запуском
- При A=B выводится одно число.
- При убывании шаг и сдвиг конечной границы отрицательны.
После практики
Сравните свой подход
Ниже - готовое решение, другой способ, если он есть, и важные детали проверки.
Ваше принятое решение
Рекомендуемое решение
Конец range сдвигается на один шаг за b, чтобы b вошло в вывод.
a = int(input())
b = int(input())
step = 1 if a <= b else -1
for x in range(a, b + step, step):
print(x)
Время: O(|B−A|+1). Память: O(1).
Ещё один способ
Пока границы не совпали, приближаем a к b на единицу. Последнюю границу печатаем отдельно.
a = int(input())
b = int(input())
while a != b:
print(a)
a += 1 if a < b else -1
print(b)
Время: O(|B−A|+1). Память: O(1).