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

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